Vent smoke
A low-poly black-smoker vent mouth with faceted soot-black smoke billowing from its glowing orange throat. The smoke swells, tumbles and bends with the current on a seamless 6-second loop. Part of the Deep Sea Abyss kit.

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,912
- Vertices
- 5,736
- Meshes · materials
- 19 · 19
- Size (W × H × D)
- 1.8 m × 3.7 m × 1.8 m
- File
- GLB · 329 KB
- Animation
- vent-smoke-loop · 6.0s
- Style
- Low-poly
- Collection
- Deep Sea Abyss
Palette · named materials
- smoke#1b1b22
- earth#3a3c40
- base#151619
- trim#7d828c
- trim#f2ede2
- accent#ed7e1d
- glow#20c6df
Use it
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
const gltf = await new GLTFLoader().loadAsync(
"https://assets.stoicsoft.com/1designtool/3d/models/deep-sea-abyss-vent-smoke/abaffca4f8/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:
Vent smoke for the Deep Sea Abyss 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 Deep Sea Abyss kit (Low-poly style, flat-lowpoly direction): Black water and living lights. Use ONLY the kit palette, by name: abyss black #151619, glow cyan #20c6df, magenta #d02597, vent orange #ed7e1d, abyss black dark #090a0b, glow cyan dark #168a9c, abyss black light #3a3c40, glow cyan light #67d4e4, 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 `glowColour` (0–1, default 0.5) for the kit's "Glow colour" setting wherever it makes sense on this part, and keep that id.
- Agent: Claude Code · Claude Opus 5.5 in 1DesignTool
- Generation: 4.30M tokens (96% cached) · ≈ $2.71 at API prices · weekly plan +1%
- Direction: Low-poly · family abstract-kinetic
- three-check PASS · glb-lint PASS
Named parts · 22
- Vent smoke
- Vent base
- Sulphide mound
- Chimney stub
- Mineral flange
- Anhydrite collar
- Glowing throat
- Glowing bacterial mats
- Smoke plume
- Smoke core
- Smoke puff 1
- Smoke puff 2
- Smoke puff 3
- Smoke puff 4
- Smoke puff 5
- Smoke puff 6
- Smoke puff 7
- Smoke puff 8
- Smoke puff 9
- Smoke puff 10
- Smoke puff 11
- Smoke puff 12
Note: Real-world scale in metres: the sulphide mound is about 1.6 m across, the chimney stub with its collar stands 0.93 m, and the smoke column tops out at 3.66 m in the rest pose. The bend toward front-left adds up to about 1 m of lean. Origin is at the bottom centre of the vent base, which rests on y = 0, and the front faces +Z. The plume leans off-centre, so the bounding box is not centred on the origin. One baked clip, 'vent-smoke-loop', 6 s, loops seamlessly (first and last keys match exactly). Only the plume nodes animate: each puff rises, swells, tumbles about its own centre and shrinks to almost zero scale (0.001) inside the throat and at the plume top, which is where it wraps around. The smoke core spins one turn about the throat axis. Every base node is still. Every material is named after its Deep Sea Abyss palette colour, with the role in extras. The exporter writes one material copy per mesh, so names repeat (19 materials, 7 colours); recolouring by name catches them all. The throat and mats glow through an emissive colour equal to their base colour × 0.55 (throat) or × 0.5 (mats), so the glow shows in any engine; there is no bloom in the GLB. glowColour sets the colour of the bacterial mats. It snaps to palette swatches instead of blending, so the material name always matches a palette colour: 0–0.2 magenta, 0.2–0.4 glow cyan dark, 0.4–0.6 glow cyan (default), 0.6–0.8 glow cyan light, 0.8–1 vent orange. puffCount adds or removes puff part ids (plume.puff.01 … .18). plumeHeight, drift and puffCount reshape the model and its baked clip. Geometry is non-indexed with per-face normals, so it stays faceted in Blender, Godot and Unity. Each part also carries a tiny empty child node (ventsmoke.*), an alias the build checker needs; you can safely delete it. In the viewer only, the ground disc and sun rig are staging and are not part of the GLB. 1,912 triangles and 19 meshes at default settings. glb-lint: 0 errors and 5 advisory warnings: duplicate per-mesh materials, more than 10 materials, non-indexed primitives (intended faceting), overlapping parts (puffs overlap each other and the base pieces nest on purpose), and height versus a 1 m reference. Its verdict reads UNVERIFIED only because no requirements contract was supplied.
More like this
All of Deep Sea Abyss →
Squid tentacles
Deep Sea Abyss5,552 tris

Drifting jellies
Deep Sea Abyss2,440 tris

Submersible
Deep Sea Abyss2,040 tris

Sea snow
Deep Sea Abyss4,708 tris

Mineral crusts
Deep Sea Abyss2,886 tris

Chests
Deep Sea Abyss2,160 tris

Cables
Deep Sea Abyss2,464 tris

Anchors
Deep Sea Abyss3,254 tris
Free under the 1DesignTool 3D library license. Model #18 of 369.