Forty-Two Twice

We build an isometric game with AI agents and open-source our tools.

Forty-Two Twice is an independent studio. Our first tool, IsoBlock, keeps the layout of a scene as data and checks it before anything is drawn.

IsoBlock sample scene An isometric yard with a tree, a hidden figure, two crates, a bench and two lanes. Three marks show failed checks: the figure is hidden behind the tree, the crates are too close, and one lane leaves the frame through the bottom instead of the right edge. figure 40% hidden crates 0.2 apart lane misses the right edge
The sample scene from IsoBlock's tests, drawn from its scene file. isoblock check finds its three deliberate mistakes.

IsoBlock

Open-source layout tool for 2D isometric scenes. Version 0.8, MIT license.

One scene file holds every object's position in world units. People and AI agents edit the same file; IsoBlock checks it against the scene's rules and hands one approved layout to the engine, to image generation and to graybox gameplay.

  • failc4clearance: crates 0.2 apart, minimum 0.5
  • failc7lane_reaches: haul lane misses the right edge
  • failc8visible: figure 40% hidden by the tree
  • passc1–c3, c5, c6, c9: regions, overlaps, spacing, path, bench
  • Checks for visibility, clearance, overlaps, lanes that must reach a frame edge, walkable reach, capacity and draw-order consistency.
  • Made for agents. describe prints a short text summary; changes are small patches that respect locks; compare reports variants by measured values.
  • Solver that places objects from relations such as “the bench is in front of the tree, 1 to 1.5 units away” and names a minimal set of rules in conflict.
  • Outputs: SVG and PNG renders, a runtime file for engines, boxes for image generation, and a Godot adapter checked against the renders to within 1 px.
  • Editor: one offline HTML page with dragging on isometric and top-down views, locks and a live check panel.
npm ci && npm run build
node dist/isoblock.mjs check tests/fixtures/yard.scene.json

Read the spec and source on GitHub

How we build

IsoBlock shipped in eight staged releases over three days.

  1. The specification and the expected test results are written first.
  2. A builder agent (Claude Code) implements one stage on its own branch.
  3. A maintainer agent (Claude) reviews the branch by behavior against the expected results, not by reading the code.
  4. A person reads the review and merges the stage into the main branch.

The same process now carries on to our game, which is in early development. We will share more when there is something to play.

Contact