Gaitkit Sign in Open the lab
Garden Snail, A garden snail at real size (1 = a 3 cm shell on a 5 cm body; the size knob scales it up to a 1.2 m giant): a coiled spiral shell swept as one growing tube with spiral bands, growth streaks and a pale flared lip, on a soft mottled body with a flat sole and a paler skirt, raised eye stalks with dark eyes and two short feelers. It sits still and breathes: the body gently swells and settles, the head nods and looks around, the eye stalks bob and the shell rocks (a Loop clip).
Creature · 7 moving parts

Garden Snail

A garden snail at real size (1 = a 3 cm shell on a 5 cm body; the size knob scales it up to a 1.2 m giant): a coiled spiral shell swept as one growing tube with spiral bands, growth streaks and a pale flared lip, on a soft mottled body with a flat sole and a paler skirt, raised eye stalks with dark eyes and two short feelers. It sits still and breathes: the body gently swells and settles, the head nods and looks around, the eye stalks bob and the shell rocks (a Loop clip).

Size
0.01 × 0.03 × 0.06 m
Triangles
1,540
Open in the lab

FreeFree download, no account needed.

Also as , a .zip with the .obj and its .mtl.

Ready for any engine. The download carries the knobs you set here.

Tune it

4 knobs: Shell, Body, Seed, Size.

Specs

Size
0.01 × 0.03 × 0.06 m
width × height × depth
Triangles
1,540
of 6,000
Draw calls
1
one vertex-colour material
Loop clip
1 m
of travel per cycle
Moving parts
7
neck · rotate, tail · rotate, stalk_L · rotate, stalk_R · rotate, feeler_L · rotate, feeler_R · rotate, shell · slide
Knobs
4
3 presets
Night lights
0
none

Passed the validator: real scale, rests on y = 0, front faces +Z, deterministic.

Use it

Code for the specimen as it is set up above; it follows your knobs.

JavaScript
import { createAsset } from 'https://gaitkit.com/cdn/garden-snail.mjs';

const gardenSnail = createAsset();
scene.add(gardenSnail);                      // rests on y = 0, front faces +Z

// 'neck' pivots on its hinge: -8° to 4° around x
gardenSnail.getObjectByName('neck').rotation.x = THREE.MathUtils.degToRad(-8);

More in the docs; agents can fetch all of this through MCP.

Knobs

KnobTypeValuesDefaultWhat it does
shellchoicegarden amber banded chocolategardenShell colour: garden (mottled brown with broken dark bands), amber (golden, glassy), banded (yellow with crisp dark bands and a dark lip, a grove snail), chocolate (dark brown with a pale lip).
skinchoicegrey cream slategreyBody colour: grey (the usual garden snail), cream (pale), slate (dark blue-grey).
seedrange1 to 99, step 11Changes the shell: how many whorls (2.5 to 3.3), how far the tip sticks out, where the bands run and how the streaks fall. Same seed, same shell.
sizerange1 to 40, step 0.51Uniform scale. 1 is real size (3 cm shell, 5 cm long); 10 is a 50 cm game-readable snail; 40 is a 2 m giant fantasy snail.

Presets: garden snail {"shell":"garden","skin":"grey"} · grove snail {"shell":"banded","skin":"cream","seed":12} · amber snail {"shell":"amber","skin":"slate","seed":5}

Files

FileWhat
garden-snail.glbGLB, default look · 450 KB
garden-snail.mjsES module, every knob live
garden-snail.objOBJ, static; colours in the .mtl
garden-snail.mtlOBJ colours; keep it next to the .obj
garden-snail-params.jsonknob schema, presets, night zones

Licence

Use it in games, apps, renders and client work, commercially and without credit. Do not resell it as an asset or train a 3D generator on it. The full licence.