Cinema Seats
A row of upholstered cinema seats on 55 cm centres with shared armrests and cup holders; every seat pan tips up on its hinge (rigged). Classic tall-backed red-velvet style or modern stadium seats with headrests and plastic shells, optionally on a 30 cm riser step with a glowing nosing strip and aisle lights. Seats face +Z.
- Size
- 3.9 × 1.5 × 1.1 m
- Triangles
- 1,296
Tune it
5 knobs: Seats, Style, Upholstery, Riser, Seed.
Specs
- Size
- 3.9 × 1.5 × 1.1 m width × height × depth
- Triangles
- 1,296 of 6,000
- Draw calls
- 1 one vertex-colour material
- Moving parts
- 6 seat_0 · rotate, seat_1 · rotate, seat_2 · rotate, seat_3 · rotate, seat_4 · rotate, seat_5 · rotate
- Knobs
- 5 3 presets
- Night lights
- 1 aisle
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/cinema-seats.mjs';
const cinemaSeats = createAsset();
scene.add(cinemaSeats); // rests on y = 0, front faces +Z
// 'seat_0' pivots on its hinge: -85° to 0° around x
cinemaSeats.getObjectByName('seat_0').rotation.x = THREE.MathUtils.degToRad(-85);import { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/cinema-seats.mjs';
export function CinemaSeats() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import cinema-seats.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
$CinemaSeats/seat_0.rotation_degrees.x = -85// Import cinema-seats.glb with glTFast (com.unity.cloud.gltfast).
transform.Find("seat_0").localEulerAngles = new Vector3(/* x: */ -85, 0, 0);Use the gaitkit MCP server: get_variant({ "id": "cinema-seats", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
count | range | 2 to 10, step 1 | 6 | Number of seats in the row, 2 to 10 (55 cm each, so 1.2 to 5.6 m with the end standards). |
style | choice | classic stadium | classic | classic (tall velvet back, wooden armrest caps, panelled end standards, old picture house) or stadium (high back with a headrest, dark plastic shells and wide padded armrests, modern multiplex). |
color | choice | red blue charcoal green purple | red | Seat fabric: red, blue, charcoal, green or purple. |
riser | toggle | on / off | true | Stand the row on a 30 cm carpeted riser step with a lit nosing strip and low aisle lights on the end standards, as in a sloped auditorium. |
seed | range | 1 to 99, step 1 | 2 | Which seats are tipped up (empty) and which are down, and where a forgotten popcorn box or cup sits. |
Presets: picture palace {"count":8,"style":"classic","color":"red","riser":true,"seed":2} · multiplex row {"count":6,"style":"stadium","color":"charcoal","riser":true,"seed":7} · lecture hall {"count":10,"style":"stadium","color":"blue","riser":false,"seed":4}
Files
| File | What |
|---|---|
| cinema-seats.glb | GLB, default look · 180 KB |
| cinema-seats.mjs | ES module, every knob live |
| cinema-seats.obj | OBJ, static, no colour |
| cinema-seats-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.