@three-ws/create-agent
v0.1.0
Published
One command from a sentence to a rigged, animated 3D agent you can embed anywhere. npm create @three-ws/agent "a friendly cartoon astronaut"
Maintainers
Readme
@three-ws/create-agent
One command from a sentence to a rigged 3D character you can put on your site.
npm create @three-ws/agent "a friendly cartoon astronaut in a glossy white suit"three.ws building "a friendly cartoon astronaut in a glossy white suit"
a rigged humanoid, free lane, no account needed
· sent to the three.ws forge
· generating the figure (15s)
· generating the figure, then the skeleton (60s)
✓ model ready
· downloading the model
Friendly Cartoon Astronaut is ready in 94s
folder a-friendly-cartoon-astronaut/
index.html
agent.json
README.md
agent.glb (3.4 MB)
viewer https://three.ws/viewer?src=…
Paste this anywhere:
<script type="module" src="https://three.ws/agent-3d/latest/agent-3d.js"></script>
<agent-3d body="https://three.ws/cdn/…/rigged.glb"
name="Friendly Cartoon Astronaut"
style="width:100%;max-width:420px;height:520px"></agent-3d>
Open the demo: npx serve a-friendly-cartoon-astronautNo account. No API key. No signup. The generation runs on the three.ws free lane, and the platform's own provider keys cover it.
What you get
| File | What it is |
| --- | --- |
| agent.glb | The model, with a humanoid skeleton, so it can be posed and animated. Opens in Blender, Unity, Godot, or any glTF tool. |
| index.html | A working demo page. Double click it. |
| agent.json | The record: prompt, hosted URLs, backend, timing. |
| README.md | How to embed it and where to go next. |
Options
npm create @three-ws/agent "a knight in worn steel armor" --out ./knight
npm create @three-ws/agent --photo https://example.com/me.jpg --name "Me"
npm create @three-ws/agent "a small ceramic frog figurine" --object| Option | Meaning |
| --- | --- |
| --photo <url> | Build from a public https reference image instead of a description |
| --out <dir> | Where to write the project (default: a slug of the description) |
| --name <name> | Display name (default: derived from the description) |
| --object | An object or prop (mesh only, free lane) instead of a rigged character |
| --no-download | Keep the hosted model URL, skip writing agent.glb |
| --json | Print the result as JSON and nothing else |
| --origin <url> | API origin (default https://three.ws) |
Describe one full-body humanoid in a neutral standing pose for the best rig. Lead with the subject, then materials and colours: the free lane conditions on roughly the first 77 characters, so front-load what matters.
Programmatic use
import { createAgent } from '@three-ws/create-agent';
const made = await createAgent({
prompt: 'a friendly cartoon astronaut',
out: './astro',
onProgress: ({ message }) => console.log(message),
});
made.result.glbUrl; // hosted, durable
made.result.rigged; // true
made.dir; // absolute path to the project| Export | What it does |
| --- | --- |
| createAgent(opts) | The whole pipeline: generate, scaffold, download |
| callForge({ tool, args, ... }) | One forge call (forge_avatar or forge_free) |
| downloadModel(url) | Fetch the model bytes with a deadline |
| projectFiles(...), demoPage(...), embedSnippet(...) | The scaffold, as pure functions |
| ForgeError | Carries code: timeout, unreachable, no_model, rpc_error, http_<status> |
Everything takes { fetchImpl, signal, origin }, so it runs against a local three.ws, a proxy, or a test double.
How long it takes
A rigged character is generation plus rigging, usually one to three minutes; rigging is the slow half. An --object is faster. Every call carries an explicit deadline (10 minutes) and reports real elapsed time, never an invented progress bar. If the deadline hits, the job may still finish: finished models land at https://three.ws/creations.
Related
- The full pipeline in a browser: https://three.ws/create
<agent-3d>attribute reference: https://three.ws/docs/web-component- Your agent's live status on a home screen or in a README: @three-ws/agent-glance
- Docs: https://three.ws/docs/create-agent
License
Apache-2.0
