oJust1n Say hi

Self-taught builder in Taiwan, learning to train AI. I direct AI tools like Claude Code and Blender MCP, and I can take apart everything they helped me make.

oJust1n

Dive in

I build things
to learn them.

Based in
Taiwan, UTC+8
Learning
How to build and train AI: reinforcement learning, PPO, why optimisers get stuck in local minima
Builds with
Blender (driven by Claude through Blender MCP), Three.js, Python, Claude Code
Off the clock
Minecraft, usually a modpack in Prism Launcher. Same username: oJust1n
House rule
Every project ends with a number or a finding, not just a demo

A forest bridge, rebuilt from one photo.

I gave Claude one reference photo and Blender MCP, then directed the build in rounds: shapes, proportions, materials, light. After every round we rendered, compared it with the photo and fixed what was off.

Final Cycles render: the bridge in dappled sunlight among sorrel, ferns and white flowers Blockout render of the same view: bridge, abutments and bare trunks
BlockoutDrag to wipeFinal
Walking across: 13.75 s at 1080p, rendered frame by frame from a script.

Three rounds

  1. Round 0 render: the whole scene glowing magenta because every texture was missing

    Round 0 Everything went pink. Windows had cleaned the Temp folder that held the textures. Lesson: assets live next to the .blend now.

  2. Round 1 render: blockout of the wooden bridge, mossy stone abutments and tall trunks

    Round 1 Blockout. Bridge, abutments and trunks in place, with the camera matched to the photo by solving for position and yaw.

  3. Round 2 render: finished bridge in dappled sunlight, surrounded by sorrel, ferns and white flowers

    Round 2 Final. A warm sun, a forest HDRI, a hidden leaf-noise plane for dappled shadows and thin haze, then AgX Punchy and a vignette. Cycles on an RTX 4060.

Now hold it

Waiting to surface the model

Drag to orbit

  • 23×smaller for the web: 199 MB down to 8.5 MB. A .glb can't carry procedural shaders or a Geometry Nodes scatter, so this real-time cut rebuilds the wood in the browser and re-scatters thousands of plants from the same templates.
  • ~100beams placed by code, each built along its own X axis so one procedural wood shader fits them all.
  • 230kplants in the original from one Geometry Nodes scatter, with density masked in Python by distance to the path, pond and trees.

The zoo.

Tiny physics worlds where an AI is rewarded for one thing and I watch what it finds. Nobody tells it to cheat. The score is the only thing it can see, so any crack in the simulator becomes part of the route.

Exhibit 0: learning to drive Control

A car with 9 distance sensors, rewarded only for metres of track covered. Panels show the same lap after 4, 54, 226 and 3,036 attempts.

0 → 100% laps finished on 30 tracks it had never seen, within about 15 seconds of training. The next 1.45M steps only trimmed the lap from 26.06 s to 25.75 s.

Exhibit 1: the door Exploit found

A wall with a door, a goal on the far side, and a reward for getting closer. My collision code moves first and pushes out the nearest face, so an agent that dashes in past the midline gets ejected on the far side.

21.9% of runs went through the wall on naive physics (four training seeds, 20-25%). With collision checked in tiny sub-steps: 3.1%, all of them clipping the door's corner. Patching the first hole exposed a subtler one.

Exhibit 2: the ramp Skipped, then learned

A sealed wall with no door and a pushable ramp. Shove the ramp against the wall, climb it, step over. I never mention ramps in the reward.

On the naive physics the agent never climbed (peak height 0.09 against a 1.0 wall) yet still reached the goal in 83% of runs by tunnelling through at ground level. With the collision patched, it taught itself the ramp: 100% of runs, peak height 1.18, ramp jammed against the wall. The easier exploit hid the intended solution.

Patch the hole and the cheat moves.

The finding: fixing my physics cut wall-clipping from 21.9% to 3.1%, but the agent found the door's corner instead. And on the ramp, a cheap exploit hid the real solution until the exploit was gone.

Still submerged.

On sonar, not surfaced yet. No results means no numbers, so each one is pointed at a question instead.

  1. Fake-coin prediction market Planned

    A Discord bot: /bet, /resolve, /balance, /leaderboard, with SQLite, deadlines, and only the creator or a mod allowed to resolve.

    Question: once there's bet history, can a small model I train suggest fairer odds than the crowd?

  2. Camera to live 3D Planned

    My Xiaomi C500 Pro stream through go2rtc into OpenCV, with the results sent over WebSocket into a Three.js twin of the room.

    Question: how close to real time can a cheap home camera drive a 3D scene?

You hit the bottom.

I'm oJust1n on Discord and in Minecraft. Message me about any of this, or just to say what you're building.

Back to the surface