Hover Car
A low-flying cyberpunk hover car about 4.7 m long: a wedge body with a smoked glass canopy and four ducted lift fans on outrigger pods at the corners (3.1 m across the pods), as a sleek coupe, a taller sky cab with a lit roof pod or a boxy cargo van. Flies by distance about 1.2 m above the street: the turbine fans spin and the body bobs gently; underglow, a flank stripe, the head and tail light bars glow at night.
- Size
- 3.5 × 1.2 × 4.7 m
- Triangles
- 1,642
- Kit
- Cyberpunk
Tune it
4 knobs: Style, Paint, Glow, Spoiler.
Specs
- Size
- 3.5 × 1.2 × 4.7 m width × height × depth
- Triangles
- 1,642 of 6,000
- Draw calls
- 1 one vertex-colour material
- Loop clip
- 2.4 m of travel per cycle
- Altitude
- 1.2 m above the ground
- Moving parts
- 5 body · slide, fan_0 · spin, fan_1 · spin, fan_2 · spin, fan_3 · spin
- Knobs
- 4 3 presets
- Night lights
- 5 underglow, headlight, taillight, roofpod, cabin
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/hover-car.mjs';
const hoverCar = createAsset();
scene.add(hoverCar); // rests on y = 0, front faces +Z
let dist = 0;
renderer.setAnimationLoop(() => {
dist += speed * clock.getDelta();
hoverCar.position.set(0, groundY + hoverCar.userData.altitude, dist);
hoverCar.userData.tick(dist); // wings beat with the distance
renderer.render(scene, camera);
});import { useMemo, useRef } from 'react';
import { useFrame } from '@react-three/fiber';
import { createAsset } from 'https://gaitkit.com/cdn/hover-car.mjs';
export function HoverCar({ speed = 1 }) {
const model = useMemo(() => createAsset(), []);
const dist = useRef(0);
useFrame((_, dt) => {
dist.current += speed * dt;
model.position.set(0, groundY + model.userData.altitude, dist.current);
model.userData.tick(dist.current); // wings beat with the distance
});
return <primitive object={model} />;
}# Import hover-car.glb (download below). It carries an in-place "Loop" animation.
@onready var anim: AnimationPlayer = $HoverCar/AnimationPlayer
func _physics_process(delta):
velocity = transform.basis.z * speed
move_and_slide()
anim.play("Loop")
anim.speed_scale = speed / 2.4 # one Loop = 2.4 m of travel// Import hover-car.glb with glTFast (com.unity.cloud.gltfast).
animator.Play("Loop");
animator.speed = speed / 2.4 // one Loop = 2.4 m of travelUse the gaitkit MCP server: get_variant({ "id": "hover-car", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
style | choice | coupe cab van | coupe | coupe (low two-seat wedge with a fastback canopy), cab (taller four-seat sky taxi with a lit roof pod), van (boxy cargo hauler with a short cab and a high load box). |
scheme | choice | midnight chrome cab crimson patrol | midnight | Body paint: midnight (black with a dark grey belly), chrome (polished silver), cab (taxi yellow over black), crimson (deep red), patrol (white over navy). |
glow | choice | cyan magenta lime amber red | cyan | Colour of the underglow, turbine rims and flank stripe: cyan, magenta, lime, amber or red. |
spoiler | toggle | on / off | true | A rear wing on two struts. Off gives a clean tail. |
Presets: night runner {"style":"coupe","scheme":"midnight","glow":"magenta","spoiler":true} · sky cab {"style":"cab","scheme":"cab","glow":"amber","spoiler":false} · cargo hauler {"style":"van","scheme":"chrome","glow":"lime","spoiler":false}
Files
| File | What |
|---|---|
| hover-car.glb | GLB, default look · 228 KB |
| hover-car.mjs | ES module, every knob live |
| hover-car.obj | OBJ, static, no colour |
| hover-car-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.