Frog
A 12 cm frog with bulging eyes, a wide mouth and long folded hind legs. Walks on four sprawled legs in a slow crawl (knees and elbows out, webbed toes planted), the throat pulsing; it can puff a croaking vocal sac. Tree frog, poison dart, bullfrog or warty toad.
- Size
- 0.20 × 0.09 × 0.16 m
- Triangles
- 2,048
Tune it
4 knobs: Kind, Croak, Spots, Size.
Specs
- Size
- 0.20 × 0.09 × 0.16 m width × height × depth
- Triangles
- 2,048 of 6,000
- Draw calls
- 1 one vertex-colour material
- Legs
- 4 2 gait groups
- Stride
- 4 cm duty factor 0.7
- Foot slide
- 0.00 mm limit 1 mm
- Walk clip
- 0.09 m/s at playback speed 1
- Moving parts
- 2 throat · slide, head · rotate
- Knobs
- 4 3 presets
- Night lights
- 0 none
Passed the validator: real scale, rests on y = 0, front faces +Z, deterministic, planted feet never slide past 1 mm.
Use it
Code for the specimen as it is set up above; it follows your knobs.
import { createAsset } from 'https://gaitkit.com/cdn/frog.mjs';
import { walker } from 'https://gaitkit.com/runtime/walk.mjs';
const frog = createAsset();
scene.add(frog); // rests on y = 0, front faces +Z
const gait = walker(frog, { ground: (x, z) => terrainHeight(x, z) }); // or omit ground for a flat floor
let dist = 0;
renderer.setAnimationLoop(() => {
dist += speed * clock.getDelta();
frog.position.z = dist;
gait.poseAt(dist); // feet stay planted, at any frame rate
renderer.render(scene, camera);
});import { useMemo, useRef } from 'react';
import { useFrame } from '@react-three/fiber';
import { createAsset } from 'https://gaitkit.com/cdn/frog.mjs';
import { walker } from 'https://gaitkit.com/runtime/walk.mjs';
export function Frog({ speed = 1 }) {
const model = useMemo(() => createAsset(), []);
const gait = useMemo(() => walker(model), [model]);
const dist = useRef(0);
useFrame((_, dt) => {
dist.current += speed * dt;
model.position.z = dist.current;
gait.poseAt(dist.current); // feet stay planted, at any frame rate
});
return <primitive object={model} />;
}# Import frog.glb (download below). It carries an in-place "Walk" animation.
@onready var anim: AnimationPlayer = $Frog/AnimationPlayer
func _physics_process(delta):
velocity = transform.basis.z * speed
move_and_slide()
anim.play("Walk")
anim.speed_scale = speed / 0.09 # Walk clip covers 0.09 m/s at 1x// Import frog.glb with glTFast (com.unity.cloud.gltfast).
animator.Play("Walk");
animator.speed = speed / 0.09 // Walk clip covers 0.09 m/s at 1xUse the gaitkit MCP server: get_variant({ "id": "frog", "want": "default look" })
then place the result and walk it with walker() so the feet stay planted.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
kind | choice | tree dart golden bull toad | tree | Species: tree (bright green, blue flanks, red eyes, orange toes), dart (electric blue with black spots, poison dart frog), golden (yellow with black stripes), bull (olive bullfrog with dark blotches and gold eyes), toad (brown and warty, horizontal pupils). |
croak | toggle | on / off | false | Puffs the throat sac out like a balloon on every step, as when calling. |
seed | range | 1 to 30, step 1 | 6 | Seed for where the spots, blotches and warts fall; every number is a different frog. |
size | range | 0.3 to 12, step 0.1 | 1 | Uniform scale. 1 is a 12 cm frog; 0.3 is a tiny 4 cm dart frog; 2 is a giant bullfrog; 12 is a frog as big as a car. |
Presets: poison dart {"kind":"dart","size":0.35} · croaking bullfrog {"kind":"bull","croak":true,"size":1.6} · giant toad {"kind":"toad","size":8,"seed":11}
Files
| File | What |
|---|---|
| frog.glb | GLB, default look · 282 KB |
| frog.mjs | ES module, every knob live |
| frog.obj | OBJ, static, no colour |
| frog-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.