Pump Jack
An oil-field pump jack (beam pump, about 8 m long and 5 m tall at size 1) with the horsehead over the wellhead toward +Z. userData.tick runs one full stroke per loop: the crank spins about x and the walking beam rocks, solved as a real four-bar linkage so the pitman arms keep their length; the bridle and polished rod ride up and down the wellhead.
- Size
- 2.9 × 6.2 × 9.8 m
- Triangles
- 1,220
- Kit
- Machines
Tune it
3 knobs: Colour, Size, Drive.
Specs
- Size
- 2.9 × 6.2 × 9.8 m width × height × depth
- Triangles
- 1,220 of 6,000
- Draw calls
- 1 one vertex-colour material
- Loop clip
- 6.283 m of travel per cycle
- Moving parts
- 4 crank · spin, beam · rotate, pitman · rotate, bridle · slide
- Knobs
- 3 3 presets
- Night lights
- 1 lamp
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/pump-jack.mjs';
const pumpJack = createAsset();
scene.add(pumpJack); // rests on y = 0, front faces +Z
// 'beam' pivots on its hinge: -16.3° to 22.6° around x
pumpJack.getObjectByName('beam').rotation.x = THREE.MathUtils.degToRad(-16.3);import { useMemo } from 'react';
import { createAsset } from 'https://gaitkit.com/cdn/pump-jack.mjs';
export function PumpJack() {
const model = useMemo(() => createAsset(), []);
return <primitive object={model} />;
}# Import pump-jack.glb (download below). Moving parts are separate nodes, pivoted on their hinge.
$PumpJack/beam.rotation_degrees.x = -16.3// Import pump-jack.glb with glTFast (com.unity.cloud.gltfast).
transform.Find("beam").localEulerAngles = new Vector3(/* x: */ -16.3, 0, 0);Use the gaitkit MCP server: get_variant({ "id": "pump-jack", "want": "default look" })
then place the result.
# MCP endpoint
https://gaitkit.com/mcpKnobs
| Knob | Type | Values | Default | What it does |
|---|---|---|---|---|
colour | choice | oilfield red blue green | oilfield | oilfield (charcoal beam, yellow horsehead and counterweights), red, blue (white horsehead) or green (sand horsehead). |
size | range | 0.7 to 1.4, step 0.05 | 1 | Overall scale. 1 is a common 5 m tall unit; 0.7 a small stripper-well jack, 1.4 a big deep-well unit. |
drive | choice | electric engine | electric | electric (motor with a belt guard and a control box on a post) or engine (gas engine with a radiator and an exhaust stack). |
Presets: nodding donkey {"colour":"oilfield"} · red jack {"colour":"red","size":1.2,"drive":"engine"} · stripper well {"colour":"green","size":0.75}
Files
| File | What |
|---|---|
| pump-jack.glb | GLB, default look · 175 KB |
| pump-jack.mjs | ES module, every knob live |
| pump-jack.obj | OBJ, static, no colour |
| pump-jack-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.