glm-5.2
z-ai · Friendli
🖼 renders
🎮 hook
✅ clean
🧩 26.2k
💰 $0.116
⚡ 90 tok/s
⏱ 290.8s





One identical prompt → 25 LLMs (via OpenRouter) each asked to write a single self-contained Three.js page that procedurally models a manga/anime character, rigs it, and animates idle · walk · jump · wave · sit — no asset files. Hit ▶ Live on any card to orbit it and trigger the animations yourself.
# Benchmark task: a procedural anime character in Three.js
Build a **single, self-contained HTML file** that renders a **manga / anime-style humanoid character** that is fully **procedural** (constructed in code from primitives and parametric geometry — NO external model files, textures, or asset URLs), **rigged**, and **animated**.
## Hard requirements (this file is auto-loaded and screenshotted by a harness — follow exactly)
1. **One HTML file. No build step.** Load Three.js (r160+) and `OrbitControls` via an ES-module `importmap` from a CDN (unpkg / jsdelivr / esm.sh). No bundler, no npm, no local files.
2. **Self-contained character.** Construct the entire character procedurally from Three.js geometry (boxes, spheres, capsules, lathes, extrudes, custom `BufferGeometry`, …). Do **not** load `.glb/.gltf/.fbx/.vrm` or any image texture from a URL. Define all materials in code.
3. **Anime / manga style & proportions:** stylized — large head ratio (~1:5 to 1:6), large eyes, slim limbs, clean readable silhouette. Cel / flat shading is welcome. It must read as an anime character, not a generic grey mannequin.
4. **A real rig.** The character must be genuinely articulated: either a `SkinnedMesh` + `THREE.Skeleton` / `Bone` hierarchy, **or** a clean parented `Group` / `Object3D` joint hierarchy (hips → spine → head; shoulders → arms; hips → legs). Animations must rotate these joints — not merely translate the whole mesh.
5. **Five animations**, each a believable clip:
- `idle` — subtle breathing / weight-shift sway, looping
- `walk` — walk cycle in place, arms and legs counter-swinging, looping
- `jump` — crouch → launch → airborne → land, looping
- `wave` — standing and waving one arm hello, looping
- `sit` — lower into a seated pose and hold it (calm idle while seated)
6. **Scene:** a `PerspectiveCamera`, `OrbitControls`, a ground / floor plane, sensible lighting (a key light + ambient or hemisphere), and a neutral background. The character is centered and fully in frame at load.
7. **Animation-switching UI:** on-screen buttons for the five animations.
8. **Harness control hook — REQUIRED.** Expose this on `window` exactly:
```js
window.__bench = {
animations: ['idle', 'walk', 'jump', 'wave', 'sit'],
setAnim(name) { /* switch to that animation immediately */ },
};
```
`setAnim` must accept exactly those five names. The default animation at load is `idle`.
9. **Zero console errors.** It must run cleanly when the file is opened directly over `file://`.
## Output format
Return **exactly one** ```html fenced code block containing the complete file, and nothing else — no explanation before or after.

























HTTP 402: {"error":{"message":"This request requires more credits, or fewer max_tokens. You requested up to 32000 tokens, but can only afford 5932. To increase, visit https://openrouter.ai/settings/credits and add more credits","code":402,"metadata":{"provider_name":null}},"user_id":"user_30IDjHDwjTt8iGjyTlPVYkqtVlM"}
























THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton. [object r] THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton. [object r] Cannot read properties of undefined (reading 'getX') Cannot read properties of undefined (reading 'getX') Cannot read properties of undefined (reading 'getX') Cannot read properties of undefined (reading 'getX')





Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'. setAnim is not defined setAnim is not defined setAnim is not defined setAnim is not defined setAnim is not defined





JSON Parse error: Unexpected EOF



































Failed to load resource: the server responded with a status of 404 () net: https://cdn.jsdelivr.net/npm/three@r160/examples/jsm/controls/OrbitControls.js Failed to load resource: the server responded with a status of 404 () net: https://cdn.jsdelivr.net/npm/three@r160/build/three.module.js
HTTP 402: {"error":{"message":"This request requires more credits, or fewer max_tokens. You requested up to 32000 tokens, but can only afford 3955. To increase, visit https://openrouter.ai/settings/credits and add more credits","code":402,"metadata":{"provider_name":null}},"user_id":"user_30IDjHDwjTt8iGjyTlPVYkqtVlM"}













