te-show
Skill1 starsChanged 7 months agoMITView on GitHub
Use when configuring show files for LXStudio-TE — .lxp JSON structure, channel setup, view definitions, and project naming conventions.
In this repository12 other files it gives its agents.
- advanced-swift-patternsSkill
- apotheneum-patternSkill
- githubSkill
- idea-framingSkill
- metal-graphicsSkill
- realitykit-visionosSkill
- sonic-piSkill
- strudelSkill
- swift-concurrencySkill
- swiftui-architectureSkill
- te-patternSkill
- te-shaderSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 5 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
All show files live in te-app/Projects/:
- Distinctive: line 167
Add channels and assign patterns
- Very specific: line 173
Create a minimal .lxp with the required top-level keys
- Distinctive: line 175
Add channels programmatically or through the UI
- Very specific: line 289
Keep active show files in the root Projects/ directory
- Very specific: line 296
Verify the version string matches the current LX engine version
- Distinctive: line 297
Check for JSON syntax errors (trailing commas, missing quotes)
- Distinctive: line 298
Ensure all referenced pattern classes exist in the classpath
- Very specific: line 301
Verify the full class path in the class field (e.g., titanicsend.pattern.piemonte.Afterglow)
- Distinctive: line 302
Check that the pattern is registered in the LX registry
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
TE Show File Configuration
Show files (.lxp) define the complete runtime state of an LXStudio-TE session — patterns, channels, effects, views, and parameter values. This reference covers the file format, configuration workflow, and project conventions.
File Location
All show files live in te-app/Projects/:
te-app/Projects/
├── BootupTemplate.lxp # Default startup template
├── BM25_TE_8channel.lxp # Burning Man 2025, 8-channel
├── CoachellaMaster.lxp # Coachella show
├── MothershipTest.lxp # Mothership vehicle test
├── MShipStartupLooks.lxp # Mothership startup looks
├── DJLights.lxp # DJ lights only
├── PanelCalibration.lxp # Panel calibration utility
├── Shader3DTest.lxp # Shader 3D testing
├── Archive/ # Older show files (~30 files)
└── Grids/ # Grid resolution presets
├── 1024x1024.lxp
├── 1280x240.lxp
└── 1280x720.lxp.lxp JSON Structure
An .lxp file is a JSON document with this top-level structure:
{
"version": "1.0.1.TE.2-SNAPSHOT",
"timestamp": 1709000000000,
"model": { ... },
"engine": { ... },
"externals": { ... }
}Top-Level Keys
| Key | Description |
version | LX engine version string |
timestamp | Unix timestamp (milliseconds) of last save |
model | Vehicle model structure configuration |
engine | Pattern engine state (channels, effects, tempo) |
externals | External integrations (MIDI, OSC, DMX output) |
Model Section
{
"model": {
"id": 2,
"class": "heronarts.lx.structure.LXStructure",
"internal": {
"modulationColor": 0,
"modulationControlsExpanded": true,
"modulationsExpanded": true,
"showNormalizationBounds": false
},
"parameters": {
"label": "LX",
"syncModelFile": false,
"allWhite": false,
"mute": false,
"normalizationMode": 0,
"normalizationX": 0.0,
"normalizationY": 0.0,
"normalizationZ": 0.0,
"normalizationWidth": 1.0,
"normalizationHeight": 1.0,
"normalizationDepth": 1.0
},
"children": {
"views": {
"class": "heronarts.lx.structure.view.LXViewEngine",
"views": [
{
"class": "heronarts.lx.structure.view.LXViewDefinition",
"parameters": {
"label": "Fixtures",
"enabled": true,
"selector": "912;983;9114;...",
"normalization": 2,
"priority": false
}
}
]
}
}
}
}Views in .lxp vs views.txt
Views defined in te-app/resources/vehicle/views.txt are loaded at model initialization. The .lxp file can override or extend these with additional view definitions. The selector field in both uses the same syntax:
- Numeric IDs:
912;983;9114(component fixture IDs) - Special selectors:
Edge,Panel - Named sections:
fore;aft;starboard-fore;port-aft - Edge ranges:
11-98,98-99,99-101
Engine Section
The engine section contains the complete runtime state:
{
"engine": {
"channels": [
{
"label": "Channel-1",
"patterns": [
{
"class": "titanicsend.pattern.piemonte.Afterglow",
"parameters": {
"te_speed": 0.5,
"te_size": 5.0,
"te_quantity": 0.3
}
}
],
"effects": [...],
"blendMode": 0,
"fader": 1.0
}
],
"tempo": {
"bpm": 120.0,
"tap": false,
"nudgeUp": false,
"nudgeDown": false
},
"mixer": { ... },
"modulation": { ... }
}
}Key engine sub-sections:
| Section | Description |
channels | Array of mixing channels, each with patterns and effects |
tempo | BPM and tap-tempo state |
mixer | Cross-fader and blend settings |
modulation | LFOs, envelopes, and parameter mappings |
audio | Audio input configuration |
output | DMX/network output settings |
Starting a New Show
From BootupTemplate.lxp
The recommended starting point for a new show:
- Open LXStudio-TE
- Load
BootupTemplate.lxpfrom the Projects menu - Add channels and assign patterns
- Configure views for your target fixture groups
- Save As with a descriptive name
From Scratch
- Create a minimal
.lxpwith the required top-level keys - The model section will auto-populate from
te-app/resources/vehicle/files - Add channels programmatically or through the UI
Naming Convention
Show files follow the pattern:
[Event][Year]_[Vehicle]_[Config].lxpExamples:
BM25_TE_8channel.lxp— Burning Man 2025, Titanic's End, 8 channelsBM2024_Mship.lxp— Burning Man 2024, MothershipCoachellaMaster.lxp— Coachella master show
Channel Configuration
Each channel in the channels array holds:
{
"label": "Channel-1",
"enabled": true,
"fader": 1.0,
"blendMode": 0,
"crossfadeGroup": 0,
"patterns": [
{
"class": "titanicsend.pattern.piemonte.Afterglow",
"parameters": {
"label": "Afterglow",
"te_speed": 0.5,
"te_size": 5.0,
"te_quantity": 0.3,
"te_wow1": 0.7,
"te_brightness": 1.0
}
}
],
"effects": [
{
"class": "heronarts.lx.effect.BlurEffect",
"parameters": {
"amount": 0.5
}
}
]
}Blend Modes
| Value | Mode |
| 0 | Normal (replace) |
| 1 | Add |
| 2 | Multiply |
| 3 | Highlight |
| 4 | Subtract |
Pattern Parameters
Pattern parameters in the JSON use the path value from TEControlTag:
| JSON Key | Control | Default |
te_speed | Speed | 0.5 |
te_xpos | X Position | 0.0 |
te_ypos | Y Position | 0.0 |
te_size | Size | 1.0 |
te_quantity | Quantity | 0.5 |
te_spin | Spin | 0.0 |
te_brightness | Brightness | 1.0 |
te_wow1 | Wow1 | 0.0 |
te_wow2 | Wow2 | 0.0 |
te_wowtrigger | WowTrigger | false |
te_angle | Angle | 0.0 |
te_level | LvlReact | 0.1 |
te_freq | FreqReact | 0.1 |
te_twist | Twist | false |
View Configuration
Views control which fixtures a pattern renders to. Defined in views.txt and optionally overridden in .lxp.
Built-in Views
| View | Description |
| Fixtures | All LED fixtures (edges + panels) |
| Edges | All edge strips only |
| Panels | All panel surfaces only |
| Panel Sections | Grouped by vehicle section (fore, aft, starboard, port) |
| Outline | Front/back silhouette edges |
| Outline DJ | Ground-level DJ area edges |
Panel Sections
Available section selectors for Panel Sections view:
fore— Front panels (FA, FB, FSA-FSC, FPA-FPC)aft— Rear panels (AA, AB, ASA-ASC, APA-APC)starboard-fore— Right front panelsstarboard-aft— Right rear panelsport-fore— Left front panelsport-aft— Left rear panelsstarboard-fore-single— Right front, individually normalizedstarboard-aft-single— Right rear, individually normalizedport-fore-single— Left front, individually normalizedport-aft-single— Left rear, individually normalized
Archive Conventions
- Move superseded show files to
Projects/Archive/ - Keep active show files in the root
Projects/directory Grids/contains resolution-specific test configurations- The
Autosave/directory is managed automatically by LXStudio
Troubleshooting
Show file won't load
- Verify the
versionstring matches the current LX engine version - Check for JSON syntax errors (trailing commas, missing quotes)
- Ensure all referenced pattern classes exist in the classpath
Patterns not appearing
- Verify the full class path in the
classfield (e.g.,titanicsend.pattern.piemonte.Afterglow) - Check that the pattern is registered in the LX registry
- Confirm parameter paths match
TEControlTagvalues
Views not working
- View selectors must match fixture component IDs exactly
- Section names are case-sensitive
- Semicolons in view labels enable relative normalization per fixture
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

