Sliding shutter
A low-poly roll-up shop shutter for a neon back street: a ribbed grey slat curtain with a hot-pink painted band runs in two cyan-lit guide rails under a box housing. Its looping animation rolls the curtain up onto the drum inside the housing and back down while the end hub turns.

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,460
- Vertices
- 4,380
- Meshes · materials
- 49 · 9
- Size (W × H × D)
- 3.1 m × 2.9 m × 51 cm
- File
- GLB · 368 KB
- Animation
- scene-motion · 8.0s
- Style
- Low-poly
- Collection
- Cyberpunk Alley
Palette · named materials
- slat#7d828c
- housing#3a3c40
- rail#151619
- base#1b1b22
- recess#090a0b
- hub#f2ede2
- hazard#eecd2b
- neonCyan#20c6df
- neonPink#f64c84
Use it
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
const gltf = await new GLTFLoader().loadAsync(
"https://assets.stoicsoft.com/1designtool/3d/models/cyberpunk-alley-sliding-shutter/23214b1f84/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:
Sliding shutter for the Cyberpunk Alley 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 Cyberpunk Alley kit (Low-poly style, flat-lowpoly direction): A rain-soaked back street under neon. Use ONLY the kit palette, by name: black #151619, neon pink #f994b6, cyan #20c6df, sodium yellow #eecd2b, black dark #090a0b, neon pink dark #f64c84, black light #3a3c40, neon pink light #fcdee8, 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 `neonColours` (0–1, default 0.5) for the kit's "Neon colours" setting wherever it makes sense on this part, and keep that id.
- Agent: Claude Code · Claude Opus 5.5 in 1DesignTool
- Generation: 4.03M tokens (95% cached) · ≈ $2.88 at API prices · 5-hour plan +8%
- Direction: Low-poly · family abstract-kinetic
- three-check PASS · glb-lint PASS — 0 errors, 4 heuristic warnings (verdict UNVERIFIED only because no requirements contract was supplied)
Named parts · 9
- Sliding shutter
- Threshold and foot plates
- Guide rails
- Neon strips
- Roll housing
- Drive motor
- Drum and axle hub
- Slat curtain
- Bottom bar
Note: Size at defaults: 3.13 m wide (motor end to hub end; the opening is 2.6 m wide) × 2.88 m tall (2.4 m opening + 0.48 m housing) × 0.51 m deep. Origin is at the bottom centre of the bounding box, the threshold and rail foot plates rest on y = 0, and the front faces +Z. 1460 triangles, 9 materials, each named exactly after its kit palette colour. Baked clip 'scene-motion' is a seamless 8 s loop: closed hold, the curtain rolls up to 70% of the opening, holds, rolls back down, closed hold. Each slat is a rigid body on one path (straight up the rails, then onto a spiral round the drum inside the closed housing), and the drum turns about its axle by the wound angle. The spoked hub on the +X end shows the turn. The threshold, rails, housing and motor never move. neonColours sets the emissive strength of the cyan rail strips, the motor lamp and the neon pink dark material (the tube under the housing and the painted curtain band share it). It is baked into the GLB's emissive values at export. openWidth, openHeight and liftAmount reshape the model and loop; the GLB is the default variant. Wound slats sit hidden inside the housing (it is a closed box with a curtain slot underneath). Every main part node carries its library id (cyberpunk-alley-sliding-shutter.*) in extras.partId and wraps a twin node with a kit-grammar id (shutter.*), because the design kit's part-id pattern does not allow hyphens. The 31 slats (default size) carry library ids only (….curtain.slat01 …). Node names use '_' in place of '.' so the animation tracks bind on import. The glb-lint heuristic warnings are expected. Primitives are non-indexed because the facets are flat-shaded. The axle is deliberately embedded in the motor and drum. Slats and the housing panels touch neighbouring groups rather than siblings, and the 2.88 m height is real-world scale.
More like this
All of Cyberpunk Alley →
Flickering sign
Cyberpunk Alley1,992 tris

Delivery drone
Cyberpunk Alley1,796 tris

Hover bike
Cyberpunk Alley1,948 tris

Crates
Cyberpunk Alley1,148 tris

Steam vents
Cyberpunk Alley3,888 tris

Holo adverts
Cyberpunk Alley656 tris

Trash bags
Cyberpunk Alley1,536 tris

Air conditioners
Cyberpunk Alley2,252 tris
Free under the 1DesignTool 3D library license. Model #9 of 526.