We are building an original third-person 3D parkour game for the browser with Three.js, in stages. The first stage, the world, is finished and attached. This run is the second stage: the character only. No levels and no gameplay yet. The game: Odile, a young salt miner with a lit lantern, climbs through a drowned clockwork city in a hand-printed linocut look. Attached from the first stage: - odile_world_source_bundle.txt: all text source for the world. Each file starts with a line "=====FILE path=====". Unpack it. It holds NOTE.md (read first), docs/CONTRACT.md, src/, tools/, blender/scripts/ and the asset manifests. Running the Blender scripts rebuilds masonry and clockwork .blend and .glb. Blender, Python and Node may need checking in this machine. The page shell index.html is not in the bundle: it is a plain page with a full-window canvas id "c", a loading div and a hud div that loads game/assets.js and then game/bundle.js. Rewrite it. - clockface, clouds, paper, salt, stone, water, wood .png: the carved textures, which go in assets/tex/. - odile_reference_video_recompressed.mp4: the 15 s FLUX 3 Max Video reference, recompressed to under 10 MB. - world_round11_video_vs_render.jpg: video frames beside the finished world render, which is the look to hold. First rebuild the world and confirm that it renders the same as the attached comparison. Then: 1. Take the clearest video frames of Odile and use GPT Image 2 to make a clean turnaround from them: front, back, left and right on a plain ground, same character in all four. Regenerate until all four agree and match the video. Keep every take. 2. Build one 3D model from the four views, with the views as Blender reference planes, and check the model from the same four angles beside them. Fix it until silhouette and proportions match. Use the same linocut look as the world. 3. Rig it and make real animations: idle, walk, run, jump (up, air, land), climb a ladder, fall. Her lantern is lit and swings. Her coat and scarf move as cloth, driven by a real simulation or a spring chain, and do not pass through her body. Use subagents in parallel where it helps. 4. Fix these three known world bugs: the floating fragment and hand clipping in viewpoint v03, the spiral boss reading as loose discs in v06 and v08, the ladder bottom poking through the salt in v09. 5. Put her in the scene and render the same viewpoints as the video frames (at least 6) with her posed as in each frame. Keep the side-by-side comparisons of video and render. Deliver: index.html that opens on an animation viewer in the world, with keys to switch each animation and to orbit the camera; the turnaround images; model-versus-view comparisons; video-versus-render comparisons; the .blend and .glb; all source; and a note of what still falls short, plainly. Have a subagent that did not build her score the comparisons. Finish within 90 minutes.
Discussion