Spinning fan
A low-poly 92 mm CPU cooler from the Circuit City kit: a black fan with seven warm-white blades and a gold hub cap lies flat on a grey finned heatsink with gold heat-pipe loops, all on a black retention plate. The rotor spins on a seamless 4-second loop while everything else stays still.

Left rail: colours and the 5 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
- 2,724
- Vertices
- 8,172
- Meshes · materials
- 17 · 17
- Size (W × H × D)
- 12 cm × 7 cm × 11 cm
- File
- GLB · 212 KB
- Animation
- fan-spin · 4.0s
- Style
- Low-poly
- Collection
- Circuit City
Palette · named materials
- trim#151619
- body#1b1b22
- sink#7d828c
- blade#f2ede2
- accent#d0a225
- pipe#debd63
- contact#8f7019
- led#988e81
Use it
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
const gltf = await new GLTFLoader().loadAsync(
"https://assets.stoicsoft.com/1designtool/3d/models/circuit-city-spinning-fan/c9d6181f48/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:
Spinning fan for the Circuit City 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 Circuit City kit (Low-poly style, flat-lowpoly direction): The inside of a computer as a city. Use ONLY the kit palette, by name: board green #3a883a, gold traces #d0a225, black chips #151619, led colours #988e81, board green dark #235223, gold traces dark #8f7019, board green light #5db15d, gold traces light #debd63, 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 `ledColours` (0–1, default 0.5) for the kit's "LED colours" setting wherever it makes sense on this part, and keep that id.
- Agent: Claude Code · Claude Opus 5.5 in 1DesignTool
- Generation: 2.56M tokens (94% cached) · ≈ $2.20 at API prices · 5-hour plan +1%, weekly plan +1%
- Direction: Low-poly · family abstract-kinetic
- three-check PASS · glb-lint PASS
Named parts · 22
- Spinning fan (root)
- Base assembly (static)
- Retention plate
- Plate screws
- Contact plate
- Heatsink base
- Fins (13)
- Heat pipes (2)
- Fan assembly
- Top flange
- Bottom flange
- Shroud
- Frame screws
- Motor plate
- Struts
- LED ring (group)
- LED segments (lit)
- LED diffuser
- Rotor (animated group: hub, hub cap, blades)
- Hub
- Hub cap
- Blades (7)
Note: Real scale: a 92 mm CPU cooler, 0.072 m tall on a 0.112 m square retention plate; the heat-pipe bends stick out 5 mm past the plate on each side, so the overall bounds are 0.122 (X) × 0.072 (Y) × 0.112 (Z) m. Origin is at the bottom centre, resting on y = 0, front toward +Z, fan intake facing up. The GLB carries one clip, 'fan-spin' (4 s, linear, 121 rotation keys): only the rotor node turns, two full turns clockwise seen from above about the vertical axle through the hub centre, so the loop is seamless. The base, heatsink and fan frame carry no motion. Material names are the Circuit City palette names, so the kit recolours them together. The exporter writes one material per mesh, so names repeat (17 materials, 8 distinct names). The lit LED material has a faint self-glow of its own colour. ledColours sets how many of the 24 LED-ring segments use 'led colours', spread evenly (12 of 24 at 0.5); the rest stay 'warm white'. Every param is baked at export, so the GLB holds the defaults; spinTurns changes the speed of the baked clip, not its length. 2724 triangles at defaults (about 3300 at the largest settings). Every primitive is non-indexed with per-face normals so the flat facets survive in any engine. The green board disc in the preview is viewer staging only and is not in the GLB. glb-lint: 0 errors. Its warnings are heuristics: material count and repeated names (per-mesh export), non-indexed (flat-shaded) primitives, nested part bounds (screws, contact plate, motor and struts sit inside larger boxes), and scale (it compares the 0.072 m cooler with the direction's 1 m reference height). Its verdict reads UNVERIFIED only because no requirements contract was supplied. Plan-level part ids are 'spinningfan', 'spinningfan.base' and 'spinningfan.fan' because the kit's plan checker rejects hyphens in part ids; every sub-part uses the library's circuit-city-spinning-fan.* ids.
More like this
All of Circuit City →
Bus tram
Circuit City3,272 tris

Blinking LEDs
Circuit City2,804 tris

Data packets on traces
Circuit City1,904 tris

Jumper cables
Circuit City4,496 tris

Data crates
Circuit City3,168 tris

Antenna pins
Circuit City1,000 tris

Fans
Circuit City1,588 tris

LEDs
Circuit City1,920 tris
Free under the 1DesignTool 3D library license. Model #48 of 379.