Buildup
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_projectA | Create an empty modelling project, saved in the workspace. Names: 1-40 lower-case letters, digits or '', starting with a letter. Next: define_color, then add_part and the draw* tools. |
| list_projectsA | List the projects of the workspace. |
| project_summaryB | Show a project's colors, parts (extent in voxels and meters), wheels and anchors. |
| undoA | Revert the last edits of a project (any tool that changed it). Cannot be redone. |
| define_colorA | Define a named color: a material plus a displayed color, used by the drawing tools. In Teardown the material decides how a voxel breaks; the color is only its look. Typical: body paint 'weak metal' (official cars), windows 'glass', lights finish 'emissive'. Redefining an existing name changes its rgb/finish everywhere it is used (its material cannot change). Each material has 8 or 16 color slots. Example: name 'body_paint', material 'weak metal', rgb [180, 30, 30]. |
| add_partA | Add an empty part to the body (one named object in the .vox file). Use one part for the main body; separate parts only for pieces that are separate objects in the XML. Draw into it with the draw_* tools; its size follows its voxels. |
| remove_partA | Delete a part and all its voxels (undo brings it back). |
| draw_boxA | Add, paint or carve a rectangular block of cells start <= cell < end. Example: a body 1.6 m wide, 0.6 m high and 4.0 m long, 0.3 m above the ground, front at -Z: start [-8, 3, -20], end [8, 9, 20] (16 x 6 x 40 voxels). Carve a cabin interior or wheel arches with mode 'carve'. |
| draw_cylinderA | Add, paint or carve a cylinder (pipes, headlights, exhausts, round details). Example: an exhaust pipe along Z, 2 voxels across, at x = 5.0, y = 4.0, from z = 20 to 24: axis 'z', center [5, 4], radius 1, span [20, 24]. Wheels: use add_wheels instead. |
| draw_ellipsoidA | Add, paint or carve an ellipsoid or a sphere (voxel centers inside the surface). Example: a dome 1.2 m wide, 0.4 m high, 2 m long on a roof whose top is y = 14: center [0, 14, 0], radii [6, 4, 10] (the lower half lands inside the roof). |
| draw_wedgeA | Add, paint or carve a ramp: the block start..end cut diagonally across its extent. The edge between faces[0] and faces[1] is removed as deep as the block goes. Example: a hood sloping down to the front, full height at the back: faces ['top', 'front']. |
| cut_edgesA | Bevel or slope edges of a block of the part (windshields, hoods, rounded roofs). A voxel is cut when d1 / depths[0] + d2 / depths[1] < 1, d being the distance from its center to each face. Example: windshield slope on a cabin start [-8, 9, -6], end [8, 15, 10]: edges [['top', 'front']], depths [5, 6] (5 voxels down, 6 back). |
| mirror_partB | Make a body part left-right symmetric: copy one side, mirrored, over the other side. With the default plane X = 0, a body spanning X -8..8 stays -8..8. Model details on the left side, then mirror. Voxels on the replaced side are discarded. Wheel parts cannot be mirrored (add_wheels already makes both sides). |
| hollow_partA | Empty the inside of a part, keeping a shell (fewer voxels, interiors). The shell stays joined by faces on slopes and curves. Carve openings (doors, windows) afterwards if needed. |
| move_partA | Move a part (a wheel's axle moves with it; anchors stay where they are). |
| add_wheelsA | Add a left and a right wheel per axle, as separate parts with axle data for the XML. Wheels are cylinders along X named wheel_fl, wheel_fr, wheel_bl, wheel_br (f = front, b = back, l = left -X, r = right +X; 1 axle: m, 3 axles: f, m, b; 4: f, m1, m2, b). Example for a body 16 voxels wide and 40 long: axles [{z: -13, steer: true}, {z: 13, drive: true}], diameter 8, width 2, inner_x 9 (wheels at X -11..-9 and 9..11). The body must not overlap the wheels: raise the body or carve wheel arches. |
| set_anchorA | Set a named point of the model (driver position, exhaust, lights...). Official vehicles use player (the driver is shown near it; official cars put it on the left, negative X), vital (meaning not documented) and exhaust (exhaust smoke comes out there, verified in game). Anchors stay put when parts move. Example: player [-4, 9, 2]. |
| previewA | Render the model as an image with several annotated views. Look at it after edits. Orthographic views are true views from outside: the front view (camera at -Z) shows the model's right side (+X) on the image LEFT; each panel names the side every image edge shows. Rulers are model-frame meters. Magenta markers: wheel axles and anchors. The image is also saved as preview.png in the project folder. |
| inspectA | Describe the model in text: sizes, materials, colors and connectivity. Gives the size in voxels and meters, the filled extent, voxel counts per material and palette index, and the face-connected pieces (voxels touching only by edges or corners may fall apart when damaged in game). |
| slice_layersA | Print layers of the model as text grids, one symbol per voxel ('.' = empty). Rows and columns are labelled with model-frame voxel coordinates; the legend gives the palette index and material of each symbol. |
| export_modelA | Export the model as a mod folder: .vox file, manifest (JSON) and XML skeleton. Writes workspace/mods// (the user copies it into the game's mods folder). Reports the XML positions of every object, wheel and anchor, and warnings (missing anchors, overlapping parts, pieces that may fall apart). Then write info.txt and spawn.txt (teardown_reference 'mod_files'). |
| teardown_referenceB | Teardown facts needed to write the mod's XML and text files. Each fact says whether it is verified in game or only seen in official files. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Most tools target clearly distinct operations: draw_box/cylinder/ellipsoid/wedge are distinct primitives, and preview/inspect/slice_layers/project_summary produce different outputs. Mild overlap exists between draw_wedge and cut_edges (both cut edges) and between project_summary and inspect (both describe the model), but descriptions distinguish them adequately.
The set is mostly consistent verb_noun (create_project, add_part, remove_part, draw_box, move_part, mirror_part, hollow_part, cut_edges, add_wheels, set_anchor, export_model). A few deviate to noun or bare-verb form (project_summary, teardown_reference, preview, inspect, undo), which is a minor inconsistency but still readable.
22 tools is on the heavier side, but each earns its place: distinct shape primitives, part transformations, multiple inspection views, and export are all genuinely needed for a voxel modelling workflow. No obvious redundant or filler tools.
Strong lifecycle coverage: create/list projects, add/remove parts, draw/cut/mirror/hollow/move, wheels, anchors, undo, inspection and export. Minor gaps such as no delete/rename project and no part rotation are workable around given existing tools.