Filament Docs

Standalone Player

Put a Filament show on a Raspberry Pi that boots straight into it and loops forever. Hardware list, setup recipe, updating the show, and what to check when nothing lights up.

The standalone player is a tiny program that plays a Filament DMX show (.dmxshow) over Art-Net or sACN on a seamless loop. It has no GPU, no screen and no license check, and it never needs the internet. You export the show once in Filament, copy it to a Raspberry Pi, and the Pi runs it until someone pulls the plug. Pull the plug and plug it back in, and it runs again.

That is the whole product: a gallery piece, a shop window or an architectural strip that plays a Filament show for months on a €60 computer, with your laptop back in your bag.

The player is free for everyone. Exporting the show from Filament is a paid capability, like every other export. See Licensing and Trial.

What you need

ItemNotes
Raspberry Pi 4 or 5Any memory size. A Pi 3 or Zero 2 W also works for smaller shows, since the player needs a 64-bit Pi. A Pi 1, 2 or the original Zero does not.
Official power supplyUnder-powered Pis reboot at random. Get the real one.
microSD card, 16 GB or moreAny brand-name A1 or A2 card.
Ethernet cable to your LED controllersThe controllers talk to the Pi over cable. Wi-Fi is only for setting things up from your computer.
A computer with Filament installedMac, Windows or Linux. You use it to export the show and to talk to the Pi over SSH.
A case, optionallyPassive aluminium cases keep a Pi 4 cool enough without a fan.
A DS3231 clock module, optionallyOnly if you want the show to switch itself off at night (see Play window).

The recipe below is tested on a Raspberry Pi 4 with 64-bit Raspberry Pi OS Lite. Any recent Pi OS behaves the same.

The plan

  1. Export the show from Filament.
  2. Flash the Pi and log in over SSH.
  3. Install the player on the Pi.
  4. Put the Pi on the LED network.
  5. Copy the show over and start the boot service.
  6. Make the SD card power-cut safe.

An hour, most of it waiting for the card to flash.

1. Export the show

Build your show in the Timeline, then open Export from the Arrangement toolbar. Tick DMX show (standalone player), pick a location and export. Untick Video file if you only need the DMX; the DMX export needs no video encoder and is fast.

The result is a folder whose name ends in .dmxshow. It contains every DMX frame of the show, plus the Art-Net / sACN destinations from your project. The player loops the whole range you exported, so export exactly the section that should repeat.

Two things to know:

  • Live-only inputs are baked at their base values. Audio-reactive and MIDI modulation, and external video sources, do not exist on the Pi. The export dialog flags these before you render. See Capture & Export.
  • Destinations can be changed later without re-exporting. If the install network ends up different from your studio, you fix it on the Pi (step 5).

2. Flash the Pi

Download Raspberry Pi Imager on your computer. Pick your Pi model, then Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit). Lite has no desktop, which is what you want on a box nobody will ever plug a monitor into.

When Imager asks about customisation, edit the settings:

  • Hostname: something you will recognise, for example gallery-pi.
  • Username and password: pick your own. Write the password down.
  • Wi-Fi: your studio Wi-Fi, so you can reach the Pi from your computer while setting up.
  • Services tab: enable SSH with password authentication.

Flash, put the card in the Pi, power it up, wait a minute. Then from a terminal on your computer (Terminal on a Mac, PowerShell on Windows):

ssh pi@gallery-pi.local

Replace pi and gallery-pi with the username and hostname you chose. The rest of this page uses pi@gallery-pi.local throughout. Type yes to the fingerprint question, then your password. You are now on the Pi.

If gallery-pi.local is not found, look up the Pi's address in your router's device list and use that instead, for example ssh pi@192.168.68.66.

3. Install the player

Still logged in on the Pi, download and unpack the player:

curl -fsSL https://releases.filament.click/player/linux/aarch64/filament-player-latest.tar.gz | tar xz
./filament-player --version

This leaves three files in the Pi's home folder: filament-player, a helper script push-show.sh, and a README with the full command reference.

You also want the player on your computer, mainly for push-show.sh, which copies shows to the Pi. Download the matching archive and unpack it somewhere you can find again:

The same binary runs on your laptop, so you can filament-player tui myshow.dmxshow there to check a show before it goes anywhere near the Pi.

4. Put the Pi on the LED network

There are two common setups. Pick yours.

Everything on one router. If your LED controllers, your computer and the Pi all plug into the same home or studio router and get their addresses from it, plug the Pi's Ethernet cable into that router and skip to step 5. Nothing to configure.

A dedicated LED network. This is the usual gallery install: a small switch, the controllers with fixed addresses like 192.168.1.40, 192.168.1.41 and so on, and no router. Give the Pi's Ethernet port a fixed address on the same range. On the Pi:

sudo nmcli con add type ethernet ifname eth0 con-name led-network \
  ipv4.method manual ipv4.addresses 192.168.1.10/24 ipv4.never-default yes \
  ipv6.method disabled connection.autoconnect-priority 10
sudo nmcli con up led-network
ping -c 2 192.168.1.40

Use an address that is free on your controllers' range. The never-default part keeps the Pi's internet on Wi-Fi so your SSH session survives. A controller should answer the ping. If it does not, check the cable and the controller's own address before going further.

5. Copy the show and start the boot service

On your computer, from the folder where you unpacked the player:

./push-show.sh pi@gallery-pi.local path/to/myshow.dmxshow

On Windows, run that line in Git Bash (it comes with Git for Windows) or in WSL. The script prints the show's surface table so you can see that the destinations match your controllers.

The show now lives in ~/shows/ on the Pi, and a link called current.dmxshow points at it. Back on the Pi, install the boot service:

sudo ./filament-player install-service "$HOME/shows/current.dmxshow" --user "$USER"

The LEDs start right now. The service also starts on every boot, restarts the player if it ever exits, and blacks out the fixtures whenever it stops. Check on it with:

systemctl status filament-player
journalctl -u filament-player -f

If the destinations are wrong

Your studio network and the install network rarely match. The bundle carries the destinations from your Filament project, and you have three ways to override them on the Pi without re-exporting.

Bake the overrides into the service:

sudo ./filament-player install-service "$HOME/shows/current.dmxshow" --user "$USER" \
  --target "Roof strip=192.168.1.50" --target "Floor=192.168.1.51" --bind eth0

Or open the terminal UI on the show and edit interactively. Arrow keys select a surface, Enter edits its IP, p flips Art-Net / sACN, x mutes a surface, i picks the network interface, Space starts and stops playback, s saves, q quits:

sudo systemctl stop filament-player
./filament-player tui shows/current.dmxshow
sudo systemctl start filament-player

Or fix them in Filament and export again. Overrides saved from the TUI are stored beside that show, so a new show starts from its own destinations again. The --target options on the service survive show updates, which is why they are the right choice for a permanent install.

6. Make the SD card power-cut safe

Galleries switch the power off at the wall. A Linux computer that loses power while writing to its card will, sooner or later, refuse to boot. The player never writes anything while it plays, so the whole card can be locked read-only:

sudo ./filament-player install-readonly --user "$USER"
sudo reboot

Root and boot are now read-only, logs and swap live in RAM, and the disk-writing housekeeping jobs are off. The Pi comes back playing about half a minute after power returns. This is the state to leave an installation in.

Two consequences:

  • push-show.sh still works exactly as before. It opens a short writable window, copies, and locks again, with no password prompts.
  • For anything else on the Pi (updating the player, apt, changing service options), open the window yourself with sudo rw, make the change, then sudo ro. If sudo ro complains that root is still writable, a program is still running from a file you just replaced. Restart it (sudo systemctl restart filament-player) and run sudo ro again.

Updating the show later

From your computer:

./push-show.sh pi@gallery-pi.local path/to/newshow.dmxshow

That is the whole update. The old show stays on the card until you delete it, and a power cut mid-copy leaves the old show playing. Add --no-switch to copy a show without switching to it.

Without push-show.sh, the manual equivalent is scp -r of the folder into ~/shows/ on the Pi, then on the Pi: sudo rw, point the link at the new show with ln -sfn newshow.dmxshow shows/current.dmxshow, sudo ro, and sudo systemctl restart filament-player. Skip the rw and ro lines on a Pi that is not read-only yet.

Play window

The service can go dark outside opening hours: --window 10:00-18:00 on install-service plays between those times and blacks out the rest of the day. The catch is that a Pi has no battery clock and, in an install, no internet to ask the time from. After a power cut its clock is wrong and the window opens at the wrong hour. A DS3231 real-time clock module on the GPIO header (a few euros, one line in /boot/firmware/config.txt) fixes that. Without one, leave --window off.

Other useful service options: --master 0.8 scales every channel to 80 %, --speed 0.5 plays at half speed, --loops 3 stops after three passes. The README that came with the player lists all of them.

When nothing lights up

SymptomCheck
Service runs, LEDs dark./filament-player inspect shows/current.dmxshow on the Pi. Do the destination IPs match the controllers? Can the Pi ping them?
Right IPs, still darkThe Pi may be sending from the wrong port. Add --bind eth0 to install-service, or press i in the TUI and pick the interface on the LED network.
Art-Net controller expects broadcastSet the surface's target to the broadcast address of the range, for example 192.168.1.255.
gallery-pi.local not foundUse the IP address from your router instead. On Linux, install avahi-daemon on your computer for .local names.
Pi keeps rebootingPower supply. Use the official one, and a short, thick USB-C cable.
sudo ro says root is still writableA replaced program is still running. sudo systemctl restart filament-player, then sudo ro again.
Show starts at the wrong time of dayNo real-time clock. See Play window.

On this page