Gaitkit Open the lab
Checkpoint Flag, A platformer checkpoint: a pole on a stone, metal or wooden base with a waving flag in any colour and a glowing finial. Active raises the flag to the top; inactive leaves a grey flag low on the pole. The cloth is two hinged parts, flag_0 at the pole and flag_1 at its middle, swaying about y (userData.tick, Loop clip baked). The base fits one 1 m grid cell; the whole piece is centred on its bounds, so the pole stands about 0.3 m left of the origin.
Prop · 2 moving parts

Checkpoint Flag

A platformer checkpoint: a pole on a stone, metal or wooden base with a waving flag in any colour and a glowing finial. Active raises the flag to the top; inactive leaves a grey flag low on the pole. The cloth is two hinged parts, flag_0 at the pole and flag_1 at its middle, swaying about y (userData.tick, Loop clip baked). The base fits one 1 m grid cell; the whole piece is centred on its bounds, so the pole stands about 0.3 m left of the origin.

Size
1.6 × 2.4 × 0.92 m
Triangles
552
Open in the lab Ready for any engine. The download carries the knobs you set here.

Tune it

4 knobs: Flag colour, State, Base, Pole height.

Specs

Size
1.6 × 2.4 × 0.92 m
width × height × depth
Triangles
552
of 6,000
Draw calls
1
one vertex-colour material
Loop clip
8 m
of travel per cycle
Moving parts
2
flag_0 · rotate, flag_1 · rotate
Knobs
4
3 presets
Night lights
1
glow

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/checkpoint-flag.mjs';

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

// 'flag_0' pivots on its hinge: -25° to 25° around y
checkpointFlag.getObjectByName('flag_0').rotation.y = THREE.MathUtils.degToRad(-25);

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

Knobs

KnobTypeValuesDefaultWhat it does
colorcolorany colour#ff5a3cFlag cloth colour when active. #ff5a3c red, #3fa9ff blue, #52d273 green, #ffcc33 yellow, #b06cff purple.
statechoiceactive inactiveactiveactive (flag raised to the top in its colour, finial and base lights glowing: the player has reached it) or inactive (grey flag lowered near the base, lights off: not reached yet). Swap the two to show a checkpoint being claimed.
basechoicestone metal woodstonestone (round stone slab with grass tufts), metal (bolted steel plate with lamps), wood (a sawn log stump).
heightrange1.5 to 3.5, step 0.12.4Height of the pole in metres, base included.

Presets: claimed checkpoint {"state":"active","color":"#52d273"} · waiting checkpoint {"state":"inactive"} · castle banner {"base":"stone","color":"#b06cff","height":3.4}

Files

FileWhat
checkpoint-flag.glbGLB, default look · 69 KB
checkpoint-flag.mjsES module, every knob live
checkpoint-flag.objOBJ, static, no colour
checkpoint-flag-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.