tempest

tempest · output

TEMPEST (P1) — a Tempest-style vector-tube shooter as a video SOURCE. This phase renders the glowing additive-line "well" (the QuadraScan vector look): a bright near rim ring, a dim far pit ring, and radial lane lines, with the player CLAW riding the near rim. The CV input `rim` (0..1, wraps) drives the claw's position around the rim — the authentic rotary-spinner control, e.g. a gamepad joystick axis — and the SHAPE param picks the tube cross-section (circle / square / star). Every line segment is expanded on the CPU into a glowing quad (1px gl.LINES clamp to a dim, dotted stipple on the real GPU), so the web reads solid + luminous at any orientation. `out` is a normal downstream video texture. Enemies, fire, scoring, the audio-breathing tube and the video-textured surface land in later phases; the pure geometry/projection core lives in tempest-core.ts.

TEMPEST draws the glowing vector WELL of a Tempest-style tube shooter: a QuadraScan-look web of a near rim ring, a far pit ring and the radial lane lines joining them, with the player CLAW riding the near rim. It is a PICTURE, not a game — this phase renders the tube and the claw; enemies, firing and scoring are later phases. The claw's position around the rim is the one live control, driven by the RIM param or by CV into the RIM jack (the authentic rotary-spinner input, i.e. a gamepad joystick axis), and it WRAPS, so sweeping past the end continues round the tube. SHAPE swaps the tube's cross-section between circle, square and star, which changes the whole silhouette of the well. Rendering is REAL line geometry rather than a fullscreen shader pass, and every segment is expanded on the CPU into a glowing quad so the web reads solid and bright at any orientation instead of dissolving into the dotted stipple that 1px GL lines give you. Patch OUT into an OUTPUT to watch it, and an LFO or joystick CV into RIM to send the claw round the rim.

the faceplate

tempestrimcvoutvideoaudiocvgatepitch
1 inputs · 1 outputs · 2 params

inputs

idcablewhat it does
rimcvCV input for the claw's position around the near rim (0..1, linear, wrapping). This is the authentic rotary-spinner control — a gamepad joystick axis is the intended source. It targets the RIM param directly, so a cable here overrides the on-face control.
control voltage (CV); modulates rim (additive offset — ±1 CV sweeps the full range, centered on the knob)

outputs

idcablewhat it does
outvideoThe additive-line well render: rim ring, pit ring, radial lanes and the player claw, drawn as glowing quads into this node's own framebuffer. With nothing patched in, the picture is still complete — the tube does not need an input to exist.
RGB video stream

params

idlabelrangedefaultcurve
rimRim0..1linear
shapeShape0..?discrete

controls

controlwhat it does
RimRIM (0..1, linear, wrapping, default centred). Where the player claw sits around the near rim of the tube. It WRAPS rather than clamping, so a rising ramp walks the claw round and round. Also the target of the RIM cv jack.
ShapeSHAPE (discrete: circle / square / star). The tube's cross-section, which the rim ring, the pit ring and every radial lane are all built from — so this re-draws the entire well, not a detail of it. The names come from the engine's own TUBE_SHAPES list, so the face and the renderer cannot disagree about which tube is which.

source

tempest.ts on GitHub.

Generated from packages/web/src/lib/{audio,video}/module-registry.ts · repo