Ballista
A low-poly Roman field ballista on a timber trestle stand: twin torsion skeins drive two tapered arms, a V-string nocks onto a draw slider, and a rear winch cranks the span. Loops an 8-second spanning-and-aiming drill.

Left rail: colours and the 4 knobs the agent wrote into this model — they rebuild the geometry and go into your download. Right rail: looks for the viewer. Drag to orbit, scroll to zoom.
- Triangles
- 1,840
- Vertices
- 2,623
- Meshes · materials
- 67 · 9
- Size (W × H × D)
- 2.6 m × 1.5 m × 2.3 m
- File
- GLB · 215 KB
- Animation
- scene-motion · 8.0s
- Style
- Low-poly
- Collection
- Siege Camp
Palette · named materials
- frame#3d2a1c
- timber#634d36
- rope#bf9769
- cord#d2bca2
- metal#7e8c9a
- army#c05959
- runner#8f7356
- iron#1b1b22
- canvas#9a7142
Use it
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
const gltf = await new GLTFLoader().loadAsync(
"https://assets.stoicsoft.com/1designtool/3d/models/siege-camp-ballista/8f12bd30f6/model.glb"
);
scene.add(gltf.scene); // metres, +Y up, front faces +Z
const mixer = new THREE.AnimationMixer(gltf.scene);
gltf.animations.forEach((clip) => mixer.clipAction(clip).play());
// in your loop: mixer.update(delta)How it was made
The brief given to 1DesignTool's “3D object” template:
Ballista for the Siege Camp kit. Design it as one clear asset at believable real-world scale for that setting (state the size in metres in meta.notes), with its main parts modelled and named, readable at thumbnail size and from every orbit angle. It moves: author a seamless baked loop (2–12 s) with every pivot exactly at its hinge, axle or swivel, and keep the base still. This is one part of the Siege Camp kit (Low-poly style, flat-lowpoly direction): An army camped outside the walls. Use ONLY the kit palette, by name: canvas tan #bf9769, mud #634d36, steel #7e8c9a, faded red #c05959, canvas tan dark #9a7142, mud dark #32261b, canvas tan light #d2bca2, mud light #8f7356, soot black #1b1b22, warm white #f2ede2, mid grey #7d828c, dark wood #3d2a1c. Every material's `name` must be exactly the palette colour it uses — the GLB carries these names so the kit recolours as one; an unnamed material fails delivery. Kit knob: expose a param `armyColours` (0–1, default 0.5) for the kit's "Army colours" setting wherever it makes sense on this part, and keep that id.
- Agent: Devin · SWE-2 Max in 1DesignTool
- Direction: Low-poly · family abstract-kinetic
- three-check PASS · glb-lint PASS
Named parts · 22
- Ballista
- Trestle stand
- Front-left leg
- Front-right leg
- Rear-left leg
- Rear-right leg
- Base frame
- Turntable
- Elevating carriage
- Bolt rail
- Spring frame
- Left torsion skein
- Right torsion skein
- Army shield boss
- Left arm
- Right arm
- Draw slider
- Bolt
- Winch
- Left bowstring
- Right bowstring
- Winch rope
Note: Believable field size: ~1.54 m tall, ~1.9 m arm span at rest, ~2.4 m long — a light Roman ballista on a fixed trestle. Metres, +Y up, front faces +Z, origin at bottom centre. The baked 8 s clip is a spanning drill: the winch cranks the slider back, the string draws and the arms sweep in their skeins, while the turntable yaws and the carriage nods; the stand never moves. Bowstring and winch rope are rigid segments re-aimed per frame — they stretch ~8% at full draw for readability. armyColours scales the faded-red heraldry (shield boss, arm bands, bolt fletching). Materials are flat-shaded, metalness 0, named by palette colour. GLB carries 9 shared materials, 22 named parts, 1 clip ('scene-motion', 27 tracks).
More like this
All of Siege Camp →Free under the 1DesignTool 3D library license. Model #85 of 485.







