Most 3D assets are a finished mesh: what you download is what you get. A remixable asset is a small program instead, so one purchase covers a whole family of models, and your AI can build the exact one your scene needs.
This is Toy Rocket, a real published asset rebuilding live in your browser. Drag to orbit; the controls on the left are the same ones on its store page.
Whole schemes picked by the person who built the asset, so a palette change never lands you somewhere ugly. This one ships 5: mint cream, red white, navy gold, coral teal, moon mono.
Every distinct zone is addressable on its own, so you can repaint one part without touching the rest. Here that is 7 zones: body, nose cone, fins, thruster pods, struts, booster ring, fin panels.
Knobs that change the geometry itself, not just the paint: proportions, how round or chunky the form reads, how many of a repeated feature, and whole optional parts.
First, the default is the asset: calling the factory with no arguments reproduces exactly what you saw on the store page, verified against the approved model before it publishes. Second, a variant costs what the asset costs: every knob value is checked against the triangle budget, so reshaping never quietly doubles the model you are shipping to a browser.
The knobs are published as JSON, and every one carries a plain-language description written for a machine reader. An agent can read the schema, work out what the asset can change, and produce the variant your scene needs without you touching a slider.
// 1. ask what this asset can change
const schema = await (await fetch(
'https://polyfork.dev/cdn/toy-rocket-e51241-params.json')).json();
// schema.params -> typed knobs, each with a `describe` for you and your agent
// schema.presets -> curated colourways, each a map of zone -> hex
// 2. build the variant
import { createAsset } from 'https://polyfork.dev/cdn/toy-rocket-e51241.mjs';
scene.add(createAsset()); // exactly the published asset
scene.add(createAsset({ colorway: 'red-white' })); // your variant
The full agent guide, including the catalog API and paid downloads, lives at /agents.
An asset that ships as a factory instead of a frozen mesh: a function plus a typed list of knobs (curated colorways, per-part colours, shape options). Calling it with no arguments reproduces the published asset exactly; passing knob values gives you a variant at the same triangle budget.
No. Every knob works in the store viewer, and the GLB you download has your choices baked in. Developers get more: the ES module exposes the same knobs as typed parameters.
No. Every knob value is checked against the asset's triangle budget before it is published, so a variant never quietly costs more than the asset you bought.
That is the point of publishing the schema. Each knob carries a plain-language description written for a machine reader, so an agent can fetch /cdn/{id}-params.json, understand what the asset can change, and build the variant your scene needs.
Buy the asset and edit the module: it is readable, commented three.js code, not an opaque binary. The knobs cover the variations we thought were worth curating, not the limit of what you can do.