Rotating dish
A low-poly 4 m ground-station dish from the Mars Colony kit. A white faceted reflector with an orange feed horn hangs on a yoke above a rust-red turntable, a banded white pedestal and a concrete plinth with a small equipment cabinet. The dish turns a full circle and nods toward the sky on a seamless 12-second loop.

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,524
- Vertices
- 4,572
- Meshes · materials
- 24 · 24
- Size (W × H × D)
- 5.1 m × 6.1 m × 5.3 m
- File
- GLB · 142 KB
- Animation
- dish-rotate · 12.0s
- Style
- Low-poly
- Collection
- Mars Colony
Palette · named materials
- body#f4f1ec
- trim#d7cebc
- accent#ed7e1d
- base#c32222
- metal#7d828c
- dark#1b1b22
- panel#2e67b8
- dust#821717
Use it
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
const gltf = await new GLTFLoader().loadAsync(
"https://assets.stoicsoft.com/1designtool/3d/models/mars-colony-rotating-dish/3603b78820/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:
Rotating dish for the Mars Colony 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 Mars Colony kit (Low-poly style, flat-lowpoly direction): A first settlement on red dust. Use ONLY the kit palette, by name: rust red #c32222, white #f4f1ec, solar blue #2e67b8, hazard orange #ed7e1d, rust red dark #821717, white dark #d7cebc, rust red light #db5757, white light #f9f8f6, 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 `dustStormLevel` (0–1, default 0.5) for the kit's "Dust storm level" setting wherever it makes sense on this part, and keep that id.
- Agent: Claude Code · Claude Opus 5.5 in 1DesignTool
- Generation: 4.69M tokens (95% cached) · ≈ $3.35 at API prices · 5-hour plan +8%
- Direction: Low-poly · family abstract-kinetic
- three-check PASS · glb-lint PASS
Named parts · 31
- Rotating dish (root)
- Static base
- Concrete plinth
- Anchor bolts
- Pedestal
- Hazard bands
- Azimuth bearing
- Cabinet assembly
- Equipment cabinet
- Cabinet door seam
- Cabinet solar panel
- Panel post
- Cable conduit
- Dust drifts
- Azimuth assembly
- Azimuth pivot (animated)
- Turntable
- Yoke arms
- Elevation bearing caps
- Elevation assembly
- Elevation pivot (animated)
- Elevation axle
- Reflector hub
- Counterweight
- Reflector face
- Reflector back shell
- Rim band
- Back ribs
- Feed horn
- Feed housing
- Feed struts
Note: Real scale: a 4 m dish whose elevation axle sits 3.3 m up, on a 2.5 m-wide octagonal plinth. At t = 0 the model is 4.12 (X) × 5.57 (Y) × 3.75 (Z) m. Over the loop the dish sweeps a 4.64 m-wide circle and reaches 5.62 m high. Origin is at the bottom centre, the model rests on y = 0, and at t = 0 the dish faces +Z. The GLB carries one clip, 'dish-rotate' (12 s, 30 fps samples). Only two nodes move: 'mars-colony-rotating-dish.azimuth' makes one full counter-clockwise turn (seen from above) about the vertical pedestal axis, and 'mars-colony-rotating-dish.elevation' nods ±10° twice about the horizontal elevation axle. Both pivots sit exactly on their bearings, and the loop is seamless (t = 0 and t = 12 s give the same pose). The baker also writes constant translation and scale tracks on those two nodes; they never change. The plinth, pedestal, bearing, cabinet and dust drifts never move. dustStormLevel sets how many dust drifts are banked against the plinth (2 to 8, 5 at the default) and how tall they are (0.04 to 0.28 m). All params are baked at export, so the GLB holds the defaults. Material names are the Mars Colony palette names, so the kit can recolour every part at once. The exporter writes one material per mesh, so names repeat: 24 materials, 8 distinct names. 1524 triangles. Every primitive is non-indexed with per-face normals, so the flat facets survive in any engine. The brown ground disc in the preview is viewer staging only and is not in the GLB. glb-lint reports 0 errors. Its 5 warnings are heuristics: material count and repeated names (from the per-mesh export), non-indexed primitives (needed for flat shading), overlapping part bounds (bolts, bands and drifts are deliberately embedded in the plinth and pedestal), and scale (it compares this 5.6 m dish with the direction's 1 m reference height). Its verdict reads UNVERIFIED only because no requirements contract was supplied. The plan-level part ids 'rotatingdish', 'rotatingdish.base', 'rotatingdish.yaw' and 'rotatingdish.pitch' have no hyphens, following the convention used by other library assets; every sub-part uses the mars-colony-rotating-dish.* ids.
More like this
All of Mars Colony →
Cargo lander
Mars Colony2,460 tris

Airlock door
Mars Colony1,528 tris

Six-wheel rover
Mars Colony2,076 tris

Flags
Mars Colony884 tris

Rovers' charging posts
Mars Colony1,972 tris

Sample crates
Mars Colony2,588 tris

Drills
Mars Colony2,040 tris

Antenna masts
Mars Colony2,456 tris
Free under the 1DesignTool 3D library license. Model #17 of 515.