Swing Set
An A-frame playground swing set, 2.3 m tall, with one to three hanging seats (flat plank, horizontal tyre or toddler bucket). Each seat is a part seat_<i> pivoting on the top beam about x, so it swings forward and back.
- Size
- 2.8 × 2.3 × 2.0 m
- Triangles
- 728
Tune it
4 knobs: Seats, Seat type, Frame, Seat colour.
Specs
- Size
- 2.8 × 2.3 × 2.0 m width × height × depth
- Triangles
- 728 of 6,000
- Draw calls
- 1 one vertex-colour material
- Moving parts
- 2 seat_0 · rotate, seat_1 · rotate
- 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/swing-set.mjs';
const swingSet = createAsset();
scene.add(swingSet); // rests on y = 0, front faces +Z
// 'seat_0' pivots on its hinge: -35° to 35° around x
swingSet.getObjectByName('seat_0').rotation.x = THREE.MathUtils.degToRad(-35);import { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/swing-set.mjs';
export function SwingSet() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import swing-set.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
$SwingSet/seat_0.rotation_degrees.x = -35// Import swing-set.glb with glTFast (com.unity.cloud.gltfast).
transform.Find("seat_0").localEulerAngles = new Vector3(/* x: */ -35, 0, 0);Use the gaitkit MCP server: get_variant({ "id": "swing-set", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
seats | range | 1 to 3, step 1 | 2 | How many swings hang from the beam: 1, 2 or 3. The beam grows by one bay (about 1 m) per seat. |
seat | choice | plank tyre baby | plank | plank (flat rubber strap seat on two chains), tyre (an old tyre hung flat, wide bay), baby (toddler bucket seat with leg holes, hung lower). |
frame | choice | red blue green yellow timber | red | Frame finish: red, blue, green or yellow painted steel tube, or timber (square wooden posts, garden style). |
seatColour | choice | black red yellow blue green | black | Colour of the seats: black rubber, red, yellow, blue or green plastic. Tyres stay black with a coloured rim. |
Presets: backyard timber swing {"frame":"timber","seats":1,"seat":"tyre"} · toddler corner {"seat":"baby","seatColour":"yellow","frame":"blue","seats":2} · school yard {"seats":3,"frame":"green"}
Files
| File | What |
|---|---|
| swing-set.glb | GLB, default look · 109 KB |
| swing-set.mjs | ES module, every knob live |
| swing-set.obj | OBJ, static, no colour |
| swing-set-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.