|   StoppedReact Three FiberThree.jsTypeScriptAnimation

A very incomplete, walkable 3D world with a draggable jointed character.

Walking through a career fair.
The Pose beach scene with the terrain and object editor open: placed palm trees, umbrellas, a beach hut, mannequins, a coordinate readout, and a minimap.
Day at the beach.

Highlights

  • Procedural jointed mannequin with walk/run, jump, drag, and sit.
  • A 76m × 116m backrooms region with a stepped pit and closed doors.
  • Chunk-based culling and camera-side wall hiding so the puzzle stays visible.
  • A pressure-button platform puzzle with timed, cracking platforms.

Overview

A React Three Fiber sandbox. You steer a jointed mannequin (run, jump, sit, crawl) through three connected environments, with an onscreen editor for terrain and objects, NPC dialogue, and experimental gravity-driven platform puzzle.

01

Getting an AI to author 3D is harder than it looks

Describing a 3D asset in plain English and getting correct geometry back is slow and hit or miss. For a palm tree or a stretch of terrain, spelling out the shape and placement by hand rarely lands on the first try.

The trick that worked best was to let the model write the prompt. Asking Claude to draft and refine the instructions for generating an asset or a stretch of world terrain produced better geometry than describing it directly, because the model encodes the spatial detail I would otherwise have to spell out myself.

02

How the engine is built

The world runs on React Three Fiber, a React renderer for three.js. The mannequin is procedural rather than imported: the body parts are lathe geometries spun from 2D profiles, the joints are nested groups rotated every frame, and the movement (walk and run cycles, gravity-driven arm swing, a squash-and-stretch jump) comes from math, not from animation clips.

Environments are built from the same primitives and placed through the editor, so the whole scene is just data the renderer walks each frame.

03

The world editor exists to save tokens

Adding objects by asking the AI to write placement code is expensive. Every tree, wall, and prop is more generated code and more tokens, and it is tedious to describe each one. The in-scene editor lets me place, move, and sculpt terrain directly, then save the layout as plain data.

Building the world by hand in the editor keeps the model out of the loop for the repetitive part, which is far cheaper than paying for a prompt per object.

04

Object culling keeps it fast

Drawing every object every frame is wasteful once the world gets large. The scene is split into spatial chunks and only what the camera can see is rendered. For interiors, the walls between the camera and the room are hidden so you can always see inside. Frame rate stays up as the world grows.

05

Animation was the weak spot, so Anim was born

Claude was not good at authoring animation. Explaining motion in English and getting believable keyframes back rarely worked and burned a lot of tokens. So I split it out into Anim, a dedicated editor for fine-tuning animations by hand instead of fighting the prompt.