Stoatworks Labs

stagewash

Rig a stage, focus it, and read the levels off the deck

In developmentRuns in a browser tab

A rig can be even on the floor and flat on every face.

Model the stage, hang the rig, aim each fixture at a point on the deck and let it work out the pan and tilt. Then read the illuminance off a heatmap with the beam cones drawn over it, before anyone's standing in the venue holding a wrench.

The whole calculation runs in the page, with no backend and no account, and nothing you build is uploaded anywhere. Import your own IES or EULUMDAT files and the fixtures you care about stop being estimates.

stagewash — Rig a stage, focus it, and read the levels off the deck
The default rig on a 10 × 6 m stage (five front-of-house Zooms, five Source Four 36° and four PAR backlights), solved on the horizontal plane at head height, with every beam cone drawn over the heatmap. That solve reads 2,056 lux average and 98% of the deck at the 500 lux target.

What it works out

01

Build the rig, then focus it

Truss, scaff, bars and wind-up stands. Hang fixtures along a bar at a spacing or place them one at a time, then aim one at a point on the stage and it resolves the pan and tilt for you. That's checked against the fixture's real pan and tilt range, so a moving head that can't get there says so rather than quietly pretending.

02

Two planes, and they disagree

The point of it

Horizontal is illuminance on a surface parallel to the deck, which is your floor wash. Vertical is a surface facing the audience at head height, which is what a face receives. Overhead light arrives nearly edge-on to that plane and adds almost nothing to it, so flipping between the two inverts the ranking of your fixtures: on the default rig the backlight contributes exactly zero to the face plane and the front-of-house units more than double. That inversion is the most common mistake in a stage rig, and it's one toggle away.

03

Every number says where it came from

Provenance

Each fixture is badged measured, published or estimated. Measured is read from a manufacturer photometric file you imported. Published has its beam angle, field angle and centre-beam candela transcribed from a named datasheet, with only the roll-off between them modelled. Estimated is a generic archetype synthesised from lamp output and beam angle, and anything containing an estimate is named Generic, which a test enforces, so there's no such thing here as a real product with invented numbers.

04

It finds the problems, then writes them down

Uniformity, coverage against a design level, and contiguous hot and dark patches listed by area with their centres, so "there's a hole downstage left" becomes a number and a coordinate. Out comes a PDF with the levels, the problem areas, a full fixture schedule with focus and heights, and the structural loading per bar, plus CSV of the schedule and of the raw grid.

What to check before a show

  1. 01

    Nothing here has been near a light meter

    The photometry is pinned against eight published rows transcribed from ETC Source Four datasheets, and the readers are checked against 132 real ETC photometric files and a corpus of EULUMDAT files covering every symmetry the format defines. That's arithmetic agreeing with a datasheet. No stage, no meter, no measurement of a real rig has ever been compared against a number this produces.

  2. 02

    It's direct illuminance only, and that's on every page of the report

    Inverse square, the cosine law, and each fixture's own intensity distribution. It doesn't model inter-reflection from the deck, walls or a cyc, atmospheric haze, shutter cuts, gobos or barn doors, or shadowing by people and scenery. On a dark stage that's the right model. In a white studio, bounce can add another third to these figures, so the caveat prints on every page of the PDF rather than living in a settings dialog.

  3. 03

    Two first-party sources disagree by up to 15%

    For four of eight fixtures, ETC's own IES file and ETC's own datasheet agree to within 1%. For the other four they differ by 5–15%, because the files and the sheets are different revisions: the Source Four 36° measures 21.3° beam in the file and is published as 27°. That gap is bigger than anything the maths in here contributes, and it's the actual floor on accuracy in this business. When the answer has to be right, import the file.

  4. 04

    An estimated fixture is a shape, not a promise

    The estimator lands within about 10% given the manufacturer's own field lumens and angles, and about 25% from bare lamp lumens alone, and those figures are in the test suite rather than in the marketing. The residual is dominated by optical efficiency being one number for a class that actually runs from 42% to 65%, which better arithmetic can't fix. Some archetypes are cruder still: the cyc doesn't model the vertical asymmetry that's the reason a real cyc unit exists, a batten is treated as a point source, and there's no colour mixing.

  5. 05

    Your rig never leaves the machine

    There's no backend and no upload. The rig, the photometric files you import and the reports are all handled in your own tab, which matters here for the same reason it does everywhere else on this page: a rig plot and a stage plan are somebody's unannounced show.

Run your own copy

stagewash is also published as a Docker image, ghcr.io/stoatworks-labs/stagewash, serving the same files as the hosted copy. On a laptop or a box in the rack it keeps working when the venue's internet doesn't.

Docker

docker run -d --name stagewash --restart unless-stopped -p 8524:80 ghcr.io/stoatworks-labs/stagewash:latest

Then it's at http://localhost:8524/. The repo's docker-compose.yml does the same with docker compose up -d.

Unraid

Search Community Applications for stagewash and install it. The template sets the port to 8524 for you.

Self-hosting the web tools, and which ones you can