🎬 MadMapper — Projection Mapping

MadMapper 6.0.2 handles projection mapping for the Forest of Light. Three instances run on separate Mac Minis — one each for the Butterfly, Flower, and Fire projections. Telemetry is sent to Node-RED via OSC.


Instances

PropertyButterflyFlowersFire
SoftwareMadMapper 6.0.2
Project FileButterfly-v6FlowersFire
Hostforest-mac2 (10.50.0.31)forest-mac3 (10.50.0.32)forest-mac4 (10.50.0.33)
ProjectorEpson DHT8000 (10.50.0.5) via HDMIOptoma UHD50X via HDMIOptoma UHD50X via HDMI
OutputsVideoVideo + LaserVideo
Surfaces9 (Wings, Quads, Lines)7 (Masks, Quads)4 (Quad-4, Monster2, Monster1, Group-1)
Scenes3 (Test Pattern, Scene-1, Scene-2)1 (Scene-1)Conductor mode (Timeline)
Resolution3840 × 2160 (4K) · 60fps · H.2641920 × 1080 (FHD) · 30fps · MPEG
AutoSaveEnabled

Architecture

Chataigne forest-mac1 10.50.0.30 BUTTERFLY — FOREST-MAC2 (10.50.0.31) Scene Cue MadMapper Butterfly-v6 · 4K@60fps HDMI Epson DHT8000 10.50.0.5 Butterfly Wings 9 surfaces · 3 scenes OSC 9090 MIDI → USB ETH 10.0.0.x LaserCube 1 10.0.0.10 Node-RED 10.50.0.30 Home Assistant Dashboard FLOWERS — FOREST-MAC3 (10.50.0.32) Scene Cue MadMapper Flowers · 4K@60fps HDMI Optoma UHD50X Flower Projection Flower Display 7 surfaces · 1 scene MIDI → USB ETH 192.168.1.x LaserCube 2 192.168.1.1 FIRE — FOREST-MAC4 (10.50.0.33) MadMapper Fire · FHD@30fps · Conductor HDMI Optoma UHD50X Fire Projection Fire Display 4 surfaces (Quad-4, Monster1/2, Group-1) Chataigne: Fire.noisette No Laser Reboot-only — no scene cues
ℹ️
Fire (Mac4): The Fire instance on forest-mac4 runs Chataigne (Fire.noisette) for scheduled reboots only — no scene cues, no laser. MadMapper runs the Fire project using Conductor mode (Timeline) at 1920×1080 / 30fps via FFMPEG Player (CPU). Player: FFMPEG Player (CPU). No laser connected.

Surfaces

Butterfly-v6 (forest-mac2) — 9 Surfaces

SurfaceTypePurpose
Left WingQuad WarpLeft butterfly wing
Right WingQuad WarpRight butterfly wing
WingsQuad WarpCombined wing overlay
Quad-1 – Quad-4QuadBackground fill regions
Lines-1, Lines-2LineEdge accent lines

Flowers (forest-mac3) — 7 Surfaces

SurfaceTypePurpose
Mask-1, Mask-2MaskFlower shape masks for projection mapping
Quad-1 – Quad-5QuadBackground and fill regions

Fire (forest-mac4) — 4 Surfaces

SurfaceTypePurpose
Quad-4QuadFire projection surface
Monster2QuadMonster sculpture 2
Monster1QuadMonster sculpture 1
Group-1GroupGroup containing Quad-1 and Quad-2

Scenes & Cues

Butterfly and Flowers use Bank-1 with scene transitions triggered by Chataigne. Fire (Mac4) uses Conductor mode (Timeline) — Chataigne (Fire.noisette) handles scheduled reboots only, not scene cues.

Butterfly-v6 (forest-mac2)

SlotScene NameTransitionNotes
1Test PatternLinear, 0sAlignment / calibration pattern
2Scene-1Linear, 0sPrimary show scene
3Scene-2Linear, 0sAlternate show scene
4–8Empty slots

Flowers (forest-mac3)

SlotScene NameTransitionNotes
1Scene-1Linear, 0sPrimary show scene
2–4Empty slots

Fire (forest-mac4)

ℹ️
Fire uses Conductor mode (Timeline) rather than Scenes & Cues. The timeline loops continuously and is not triggered remotely — MadMapper manages playback independently. Chataigne (Fire.noisette) handles scheduled reboots only.

Media Library

Butterfly and Flowers media are 4K (3840×2160), 60fps, H.264. Fire media is 1920×1080, 30fps, MPEG. Content loops continuously during show hours.

Butterfly-v6 (forest-mac2)

FileTypeDescription
aurora-waves-looped-backgroundMP4Looping aurora waves (20s loop, primary background)
Flying...el.mp4MP4Flying elements overlay
Butter...EG.mp4MP4Butterfly effect graphic
the-ab...tc.mp4MP4Abstract texture content
Aura_C1.movC4.movMOVAurora color variants (4 versions)
aurora...tc.movMOVAurora texture content
stars-...tc.mp4MP4Starfield texture
Rainbo...nd.mp4MP4Rainbow gradient blend

Flowers (forest-mac3)

FileTypeDescription
Falling Flowers 1.mp4MP4Falling flowers animation
Falling Flowers 2.mp4MP4Falling flowers variant
Aura_C1.movC4.movMOVAurora color variants (shared with Butterfly)
aurora_tc.movMOVAurora texture content
178_au...bp.movMOVAurora background layer
1.movMOVFlower content
flower_tc.mov (x2)MOVFlower texture content
V_Flow...on.movMOVFlower motion overlay

Fire (forest-mac4)

FileResolutionFPSCodecDescription
fire-2025-10-16-05-05-22-ut.mov1920×108030MPEGPrimary fire loop (FFMPEG Player / CPU)
_fire loop 1.mov1920×108030MPEGFire loop variant 1
_fire loop 2.mov1920×108030MPEGFire loop variant 2

OSC Telemetry

MadMapper sends OSC telemetry to Node-RED on UDP port 9090. Node-RED monitors these values and displays them on the dashboard. If no OSC message is received within 8 seconds, MadMapper is considered offline.

OSC AddressValueDescription
/madmapper/play/stateStringCurrent playback state (playing / stopped)
/madmapper/project/nameStringActive project name (e.g., "Butterfly-v6")
/madmapper/output/enabledBooleanWhether video output is active
/madmapper/fpsFloatCurrent rendering frame rate

Integration with Show Control

SystemInstanceDirectionProtocolPurpose
ChataigneButterfly & FlowersInboundScene cue triggerSwitches scenes during show sequence
Chataigne (Fire.noisette)Fire (Mac4)InboundWebSocket ServerScheduled reboot only (16:30 Dec–Feb 5, 17:00 Feb 6+) — no scene cues
Node-REDButterflyOutboundOSC / UDP 9090Sends play state, project name, FPS, output status
Node-REDButterflyInboundWebSocket (8080)Receives OFF command to disable projection
Node-REDFlowersInboundWebSocket (8080)Receives reboot/control commands
Home AssistantButterflyOutbound (via Node-RED)WS APIButterflyProjector switch + Wings state bridge
Home AssistantFlowersOutbound (via Node-RED)WS APIFlower Projector + Flower Laser buttons
ℹ️
HDMI refresh: Forest-mac2 is rebooted daily at 16:45 (before show start) to refresh the HDMI connection to the Epson DHT8000 projector. This scheduled reboot is managed by Chataigne and is excluded from uptime reporting.
ℹ️
Laser output: The Flowers instance on forest-mac3 has Laser output enabled in addition to Video. This controls the LaserCube (LC2) connected to mac3 via USB Ethernet (192.168.1.x private network).

Projector Hardware

The Butterfly projection uses an Epson DHT8000 projector at 10.50.0.5 (static IP, DHCP off).

FieldValue
ModelEpson DHT8000
SerialG0Z01576
FirmwareVer. 1.000
Network NameProjector1
IP10.50.0.5 (Static, DHCP OFF)
MAC08:00:7B:65:83:B5
InputHDMI 1, D-1080p
LensLNS-S50 (1.8–2.8:1 throw ratio)
Color WheelFor brightness
BrilliantColorON
Lamp Mode2 Lamps mode
Total PJ Hours3,827
Lamp 1 Hours1,676 h
Lamp 2 Hours2,262 h
Filter Time626 h
Power Management5 min timeout
Image: Contrast / Brightness / Color / Tint32 / 32 / 32 / 32
Image: Sharpness15
Image: Gamma8
Image: Color TempMid
White Balance: RGB GainR 32 / G 32 / B 32
White Balance: RGB OffsetR 32 / G 32 / B 32
⚠️
Lamp hour imbalance: Lamp 2 has accumulated 586 more hours than Lamp 1 (2,262 h vs 1,676 h). Consider monitoring lamp 2 more closely. Additionally, the filter has logged 626 hours — cleaning or replacement is recommended.

Optoma UHD50X — Flower & Fire Projectors (2 units)

The Flower (Mac3) and Fire (Mac4) projections each use an Optoma UHD50X. These projectors are HDMI-only input devices — they have no Ethernet and are not networked. They do have an RS-232C port, but it is not currently used for control. Power cycling is done manually at the huts.

ℹ️
No network control: Unlike the Epson DHT8000 (TCP/IP control on port 10000), the Optoma UHD50X projectors cannot be controlled remotely. They power on/off via their physical remote or power strip, and receive video solely via HDMI from Mac3 and Mac4.
SpecificationBoth Units (Flower + Fire)
ModelOptoma UHD50X
Quantity2 identical units
Assigned ToFlower Projector (forest-mac3, 10.50.0.32) & Fire Projector (forest-mac4, 10.50.0.33)
TechnologyDLP (Texas Instruments 0.47” DMD)
Native Resolution4K UHD (3840×2160) @ 60Hz with XPR Technology
Brightness3,400 ANSI lumens
Contrast500,000:1 (Dynamic Black)
Color GamutREC.709, DCI-P3 wide color
HDRHDR10 & HLG compatible
Lamp Life4,000 / 10,000 / 15,000 hrs (Bright / ECO / Dynamic)
Replacement LampBL-FP240E
Throw Ratio1.21–1.59 (±3% tolerance)
Vertical Lens Shift10%
Optical Zoom1.3×
Noise26 dB
InputsHDMI 2.0 (HDCP 2.2), HDMI 1.4a, VGA, RS-232C, USB
Power315W typical (Bright) / 248W (ECO)
Weight8.6 lbs (3.9 kg)
Dimensions12.4” × 4.6” × 10.6”
Operating Temp5–40°C (41–104°F)
Network ControlNone — HDMI input only (RS-232C available but not used)

Projector Comparison

FeatureEpson DHT8000 (Butterfly)Optoma UHD50X (Flower & Fire)
Technology3LCDDLP (TI 0.47” DMD)
Resolution1080p native4K UHD native (XPR)
BrightnessHigh (dual lamp)3,400 ANSI lumens
HDRNoHDR10 & HLG
Network ControlYes — TCP 10.50.0.5:10000No — HDMI only
Control in ShowChataigne sends TCP C00/C01Manual / physical remote only
Units12

Troubleshooting

SymptomLikely CauseFix
No projection outputHDMI handshake lostReboot forest-mac2 or trigger the scheduled 16:45 reboot
MadMapper shows offline in dashboardOSC telemetry stopped (app crashed or network issue)Check MadMapper is running on mac2; restart if needed
Wrong scene playingCue not triggered by ChataigneCheck Chataigne sequence; manually switch scene in MadMapper
Low FPS / stutteringGPU load or thermal throttlingClose other apps on mac2; check Activity Monitor
Projector not respondingTCP control lost (10.50.0.5:10000)Power cycle projector; check Node-RED projector flow