Browse documentation
Docs/Create and observe
On this page

Create a model

A model source describes geometry, its surface, a rig/skeleton and the final asset assembly. Add motion declarations for animated assets. Use the same source for a general GLB or an appropriate Minecraft exporter.

Start from a static prop

The marker source is one complete file. It is also included in the starter download. From your asset folder:

npx --no-install ashfox inspect marker.ashfox
npx --no-install ashfox export marker.ashfox --output marker.glb
npx --no-install ashfox capture marker.ashfox --camera front --output marker-front.png

The GLB is the model for your engine; the PNG is an observation of it. Static props do not need an idle animation. No workspace is required.

Understand what to edit

Declaration Change it to…
rig contract Define attachment joints and allowed motion channels
skeleton Position joints in the rest pose
surface contract Define texture charts and their required coverage
surface Choose palette, raster detail and material behavior
component Create cubes/planes and bind them to bones/surfaces
motion Animate supported joint channels
asset assembly Select the skeleton, components and assigned motions

Every source begins with ashfox-model 1. File extensions are .ashfox. Model lengths use u, pixel dimensions use px, times use s, and angles use deg. Read Model language syntax for complete sources and legal values. Use Dimensions and pixel detail for shared design variables and exact resize relationships.

Create an animated creature

Extract the game project and start with models/workbench/. Keep main.ashfox and animation.ashfox together, and preserve the package/module entries when copying them into a configured project. Reusing an imported module requires its source file; the entry alone is not a complete backup.

Follow Animation to assign named motions. General game bundles list exported clip names and durations in assets.json. Gameplay code decides when to play those clips. The CLI does not infer attack timing, movement states, or sound-event bindings from animation names.

Choose a destination

Use format: glb in exports for a general engine. encoding: portable is the CLI default. optimized requires additional importer extensions. See Game assets for unit hints and runtime IDs.

For Minecraft, configure namespace and modelPath on a supported model export. Java block is static; GeckoLib and Bedrock actor delivery require an idle clip. Target-incompatible features fail rather than being silently dropped. See Output formats.

Review before shipping

Use capture for front, side and orbit views and replay --clip NAME for motion. Then import the generated GLB into your intended viewer or engine. Inspect silhouette, face direction, texture seams, scale and attachments. For animation, watch every clip through a full cycle. Validation cannot certify that a model looks correct in your game's lighting or camera.

Ready to make something? Get agent instructions →