Skip to content

Ask for the outcome.Agents handle the software.

Brief

Make me a low-poly cyberpunk vending machine for my website.

Software without software.

Chimney turns a request into a finished, editable artifact (3D assets, games, product animations) by choosing, operating, and verifying whatever professional software it takes.

Editable source with every artifact. Now in early access.

How a job compiles

  1. 01Intent

    One sentence. No software named.

    Describe the outcome the way you would brief a person. Chimney reads what you asked for, and what you implied.

    Make me a low-poly(constraint) cyberpunk(style) vending machine(subject) for my website(target · web).

  2. 02Spec

    The request becomes a contract.

    Intent compiles into an artifact specification: what it is, the limits it must respect, and how success will be checked.

    artifact
    3D_ASSET
    subject
    vending machine · cyberpunk
    geometry
    low-poly · ≤ 20k tris
    target
    web · GLB · ≤ 10 MB
    outputs
    .glb .blend preview.png
    checks
    6 executable assertions
  3. 03Route

    Every way to make it, weighed.

    Direct generation, generate-then-clean-up, or a procedural build. Routes are scored on quality, latency, cost, and how editable the result stays.

    1. A

      Direct text-to-3D

      Fast. Messy topology, hard to edit.

      0.61
    2. B

      Image → 3D → cleanupSelected

      Best balance of style, size, and editability.

      0.88
    3. C

      Procedural build

      Clean and editable. Slower, stylistically flat.

      0.74
  4. 04Build

    Real software, driven natively.

    Applications are operated through their own APIs and scripting, not by clicking pixels. Every step leaves a checkpoint to roll back to.

    Runtime selected: Blender, headless, scripted

    1. 00:02image.generate(style="cyberpunk", views=4)
    2. 00:19mesh.from_images(views)
    3. 00:41scene.import(mesh)checkpoint 0845
    4. 00:48mesh.cleanup(merge_distance=0.001)
    5. 01:06uv.unwrap(method="smart")
    6. 01:23material.bake(albedo, roughness, emission)
    7. 01:31scene.save()checkpoint 0847
  5. 05Verify

    Done is proven, not declared.

    Requirements become executable checks. When one fails, Chimney diagnoses it, repairs it, and checks again.

    • artifact.format == GLBGLBpassed
    • textures.resolve == true12 / 12passed
    • nan_vertices == 00passed
    • browser_load.success212 mspassed
    • artifact.size <= 10 MB8.4 MBpassed after repair

      17.8 MB at first export. Diagnosis: dense mesh, 4K textures. Repair: decimate, compress textures, re-export.

    • tris <= 20,00018,464passed after repair
  6. 06Deliver

    Finished. Editable. Yours.

    The optimized asset ships with the source it came from. Ask for a change and the source is edited, not a flattened copy.

    • vending_machine.glb8.4 MBWeb-ready
    • vending_machine.blend31.2 MBEditable source
    • preview.png2048 × 2048Beauty render
    • verification.json6 / 6Passed
Job 0847 / vending_machineIllustrative run · rendered live
Pass
Points
Tris
—
Size
—

The live 3D preview needs WebGL, which this browser has turned off.

The application layer

The software
is our problem.

Applications become an implementation detail. Chimney decides what to open, how to drive it, and what to export, and keeps screen automation as a last resort behind native APIs, scripting, and CLIs.

What you no longer have to say

  • Open Blender.
  • Install Godot 4.
  • Start a GPU machine.
  • Connect the MCP server.
  • Export FBX, Y-up, scale 0.01.
  • Fix the color space.
  • Re-map the bones.

“Make me a playable game where the bird is a flying dosa.”

That last line is the whole brief.

Speculative execution

Try three ways.
Keep the one that passes.

When more than one route could work, Chimney branches from the same checkpoint, runs the branches side by side, and verifies each. The best result commits. The rest roll back, like a transaction.

From checkpoint 0847, three branches run in parallel. Branch A fails verification on topology, B scores 0.94, C scores 0.81. The verifier commits B and rolls A and C back to the checkpoint.Checkpoint 0847State savedA · Different modelDirect text-to-3Dfails · topologyB · Different softwareGenerate → cleanup in Blender0.94C · Different exportProcedural build0.81Verifier6 assertions eachCommit BBest passing resultRoll back A, CRestored to 0847
Optimized for
  • Quality
  • Latency
  • Compute cost
  • Editability
  • Reliability

Specimens

One request.
Any artifact.

Product assets, playable games, exploded-view animations. The same loop of route, run, verify, and repair sits behind each one.

Illustrative specimens, rendered live in your browser.

No. 001

Product asset

The live 3D preview needs WebGL.

“Turn these bottle photos into a web-ready 3D model in four colorways.”
Route
Image → 3D · cleanup · variant export
Verified
Loads in browser · 4 / 4 variants
Delivers
GLB · USDZ · 4 variants
No. 002

Playable game

The live 3D preview needs WebGL.

“Make me a Flappy Bird–style game where the bird is a flying dosa.”
Route
Godot · scripted gameplay · web export
Verified
Agent playtested · no crashes
Delivers
Web build · Godot project
No. 003

Product animation

The live 3D preview needs WebGL.

“Turn this gearbox STEP file into an exploded-view animation.”
Route
CAD import · units fixed · animate · render
Verified
Parts matched · 6 / 6
Delivers
MP4 · Blender source
No. 004

Browser game

The live 3D preview needs WebGL.

“Build a 3D maze game where an astronaut escapes Mars.”
Route
Procedural level · Three.js · solvability check
Verified
Exit reachable · path verified
Delivers
Web build · Source

Outcome episodes

We record state,
not screenshots.

Every job becomes an outcome episode: the request, the routes considered, each native state change, every failure and repair, and what you accepted. It is how the next job routes better than the last.

  • request
  • parsed_outcome
  • workflow_candidates
  • selected_workflow
  • checkpoints
  • semantic_state_diffs
  • failures
  • recovery_attempts
  • verifier_results
  • user_followup_requests
  • user_acceptance
Revision“Make this chair wider and use cream linen.”

The live 3D preview needs WebGL.

Native state diff for the revision
objectChairSeat
dimensions.x1.00becomes1.15
materialwhite_plasticbecomescream_linen
modifier+ subdivision(level=2)
vertices8,471becomes14,221
uvunchanged
transformunchanged

Tell it what to make.
Skip the software.

Send a brief

Early access. Write to .