Building what you cannot download — sculpt from a reference

Companion to the short Building what you cannot download section in this project's AGENTS.md.

On this page

Choose one branch before writing code

  • Conventional and downloadable — a crate, an oak plank texture, a click. Use the asset tools. Sculpting one of these is slower and worse.
  • Trivial — a platform, a wall, a pickup ring. Write it. If BoxGeometry finishes the job in under 20 lines, that is the answer.
  • Bespoke, with a reference image — an identity-bearing creature, vehicle, hero prop, landmark, scenery composition, or environment set piece whose silhouette must match. Use the sculpt tools to turn that reference into editable src/render/ source.
  • Bespoke, without a reference image — read node_modules/create-threenative/agent-docs/references/dream-loop.md and acquire one from the user or an explicitly selected host/provider tool. Do not invent a reference: comparison without evidence is unguided iteration.

For a full environment, split the decision: sculpt the signature landmark or bounded scene kit that makes the reference recognisable; use the asset tools for interchangeable trees, rocks, textures, HDRIs, and sounds around it. Do not sculpt an entire world as one object.

The gate loop

.mcp.json launches threenative-sculpt-mcp beside the asset server. It does not generate or ship runtime code; it guides the source you write:

  1. Call sculpt_plan with the image path and a one-line intent, then read the returned grimoire resources.
  2. Write the returned object contract and loop on sculpt_spec_gate until every named region and depth requirement passes. Do not write geometry before this gate is green.
  3. For each ordered pass, write or extend one factory in src/render/. Capture the real frame with npx @threenative/playtest; the sculpt server never launches a browser.
  4. Call sculpt_compare with the reference and captured frame, then give that evidence to sculpt_pass_gate. Advance only when it says advance; ambiguity means retry.
  5. Use sculpt_grimoire for a named technique topic. It rejects pages containing concrete paste-ready material or shader recipes so the tool never owns this game's look.

A missing or blank capture is a failed run, never a finished model. Add the reference image, its creator, license, and source URL to CREDITS.md before the turn ends.

Edit this page on GitHub ↗