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
- Kit
- Garden Bugs
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.
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);import { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/garden-snail.mjs';
export function GardenSnail() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import garden-snail.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
$GardenSnail/neck.rotation_degrees.x = -8// Import garden-snail.glb with glTFast (com.unity.cloud.gltfast).
transform.Find("neck").localEulerAngles = new Vector3(/* x: */ -8, 0, 0);Use the gaitkit MCP server: get_variant({ "id": "garden-snail", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
shell | choice | garden amber banded chocolate | garden | Shell 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). |
skin | choice | grey cream slate | grey | Body colour: grey (the usual garden snail), cream (pale), slate (dark blue-grey). |
seed | range | 1 to 99, step 1 | 1 | Changes 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. |
size | range | 1 to 40, step 0.5 | 1 | Uniform 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
| File | What |
|---|---|
| garden-snail.glb | GLB, default look · 450 KB |
| garden-snail.mjs | ES module, every knob live |
| garden-snail.obj | OBJ, static; colours in the .mtl |
| garden-snail.mtl | OBJ colours; keep it next to the .obj |
| garden-snail-params.json | knob 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.