Solutions · Web apps

A 3D character your web app can load tonight.

The web already speaks glTF. Bake3D exports it, three.js and the standard model viewers load it, and the same deterministic motion engine that plays the fox on this page runs in the browser. Generation can be driven from the studio, the REST API or an MCP assistant.

GLB (glTF 2.0) · three.js GLTFLoader · REST API and MCP · sample GLB about 2.8 MB

Maintained by Bake3D · Updated

Fox character generated from one image and rigged with Bake3D
01Workflow

Generate, export, load, play.

  1. 1

    Generate and rig

    From an image or a description. Inspect the seven views and the rig report; a web hero asset is seen from every angle a user can orbit to, so the inferred back matters.

    Image to 3D
  2. 2

    Add motion

    Describe loops for idle, hover and reaction states, or fit a preset. Ask for loops explicitly; check the boundary. Motion is deterministic, so the studio preview matches the exported keyframes.

    5 credits per described motion
  3. 3

    Export animated GLB

    One file with mesh, PBR textures, skeleton, skin weights and the clips you select, baked at 30 fps in the studio or at 24, 30 or 60 through the API. Host it with your own static assets.

    Export API
  4. 4

    Load it in the page

    three.js GLTFLoader plus AnimationMixer plays skinned clips; a glTF model-viewer element handles orbit, autoplay and a poster with no custom code. Provide a still image as the fallback and honour reduced motion.

    Integrations
02In the browser

What the fox on this page is doing.

The character at the top of this page is the sample bake3d-fox-2.glb, loaded with three.js in a React island. A poster image paints first; the engine, the GLB and the motion programs load afterwards, and if anything fails the page stays on the poster. That is the pattern to copy: the page never depends on WebGL to render, and users who prefer reduced motion see a still by default.

Two ways to play motion on the web. The simple one is the exported animated GLB: baked keyframes that any glTF player, including three.js AnimationMixer and standard model-viewer elements, plays without knowing anything about Bake3D. The other is what this page does, running Bake3D’s motion engine on the rigged GLB in the browser to switch between programs at runtime; that is how the homepage demo swaps “Tilt your head” for “Walk calmly” without reloading a file.

Textures are embedded in the GLB, so a single request fetches everything; the sample is about 2.8 MB. Serve it compressed from your CDN, lazy-load it below the fold, and keep a lower-quality-tier version for mobile if the size matters. Bake3D does not host assets for your site; signed download links from the export API expire after two hours and are meant for your build or deployment step.

Lighting and material response are up to your renderer. The GLB carries PBR maps that three.js and model viewers interpret with their standard material, so results are consistent across glTF-compliant viewers; the studio’s optional dual-quaternion skinning is the one thing that does not travel, and deformation can differ slightly under linear skinning.

03Automation

Generate from your backend or an assistant.

REST API
POST /api/v1/generate from an image URL or a prompt
GET /api/v1/jobs/:id to poll; POST /api/v1/projects/:id/animate and /export
Bearer keys on Pro and above; reference
MCP
The same workflow as tools for MCP-compatible assistants
Create jobs, direct motion, request exports from a chat
MCP docs and workflow guide
Credits
Charged when a job is accepted, refunded on failure
Exports and repeat downloads are free
Submit once per intended result
04Honest limits

What the web still asks of you.

  • File size and polygon count are not optimised for the web by default. Measure the GLB and decimate or use a lower quality tier where needed.
  • Exports do not use glTF mesh-compression extensions. Serve with HTTP compression and consider your own optimisation step.
  • No hosting, CDN or embed snippet. You serve the file.
  • Accessibility is yours: a poster fallback, a text description and reduced-motion handling belong in your page.
  • The runtime motion engine used on this site is part of the Bake3D product, not a published library; ship baked clips unless you are integrating with the API.
05Pricing

What a web asset costs.

A rigged model is 35 credits, about seventy cents at pack rates, and each described loop is 5. Exports, presets and re-downloads are free, so re-exporting after trimming the clip set costs nothing. Sixty free credits cover the first asset.

A model on a commercial site is commercial use: Pro ($24 a month, 1,500 credits) includes the commercial license and the API and MCP access a web pipeline needs. Full table on the pricing page.

FAQ

Questions before you start.

Which web libraries load the export?

Any glTF 2.0 loader with skinning and animation support. three.js GLTFLoader with AnimationMixer is what Bake3D uses on its own pages; standard model-viewer web components load the same file with orbit and autoplay built in.

Can I switch animations at runtime on the web?

With baked clips, yes: export several clips into one GLB and cross-fade them with your player. Composing new motion at runtime, as this page’s demo does, uses Bake3D’s own engine and is not a published library.

How big is the file?

It depends on the subject, quality tier and clip count. The sample fox with embedded textures is about 2.8 MB. Measure your export and lazy-load it below the fold.

Can I generate models from my server?

Yes. The REST API accepts an image URL or a prompt, returns a job to poll, and exports a signed download link that expires after two hours. Keys are available on Pro and above.

Does it work without WebGL?

The GLB needs WebGL or WebGPU to render. Ship a poster image as the fallback, as this page does, so the content still reads when 3D is unavailable or reduced motion is preferred.