agentleFS
piemontepiemonte/skills/te-show/SKILL.md

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.

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
  1. Very specific:

    All show files live in te-app/Projects/:

    line 12
  2. Distinctive:

    Add channels and assign patterns

    line 167
  3. Very specific:

    Create a minimal .lxp with the required top-level keys

    line 173
  4. Distinctive:

    Add channels programmatically or through the UI

    line 175
  5. Very specific:

    Keep active show files in the root Projects/ directory

    line 289
  6. Very specific:

    Verify the version string matches the current LX engine version

    line 296
  7. Distinctive:

    Check for JSON syntax errors (trailing commas, missing quotes)

    line 297
  8. Distinctive:

    Ensure all referenced pattern classes exist in the classpath

    line 298
  9. Very specific:

    Verify the full class path in the class field (e.g., titanicsend.pattern.piemonte.Afterglow)

    line 301
  10. Distinctive:

    Check that the pattern is registered in the LX registry

    line 302

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

KeyDescription
versionLX engine version string
timestampUnix timestamp (milliseconds) of last save
modelVehicle model structure configuration
enginePattern engine state (channels, effects, tempo)
externalsExternal 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:

SectionDescription
channelsArray of mixing channels, each with patterns and effects
tempoBPM and tap-tempo state
mixerCross-fader and blend settings
modulationLFOs, envelopes, and parameter mappings
audioAudio input configuration
outputDMX/network output settings

Starting a New Show

From BootupTemplate.lxp

The recommended starting point for a new show:

  1. Open LXStudio-TE
  2. Load BootupTemplate.lxp from the Projects menu
  3. Add channels and assign patterns
  4. Configure views for your target fixture groups
  5. Save As with a descriptive name

From Scratch

  1. Create a minimal .lxp with the required top-level keys
  2. The model section will auto-populate from te-app/resources/vehicle/ files
  3. Add channels programmatically or through the UI

Naming Convention

Show files follow the pattern:

[Event][Year]_[Vehicle]_[Config].lxp

Examples:

  • BM25_TE_8channel.lxp — Burning Man 2025, Titanic's End, 8 channels
  • BM2024_Mship.lxp — Burning Man 2024, Mothership
  • CoachellaMaster.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

ValueMode
0Normal (replace)
1Add
2Multiply
3Highlight
4Subtract

Pattern Parameters

Pattern parameters in the JSON use the path value from TEControlTag:

JSON KeyControlDefault
te_speedSpeed0.5
te_xposX Position0.0
te_yposY Position0.0
te_sizeSize1.0
te_quantityQuantity0.5
te_spinSpin0.0
te_brightnessBrightness1.0
te_wow1Wow10.0
te_wow2Wow20.0
te_wowtriggerWowTriggerfalse
te_angleAngle0.0
te_levelLvlReact0.1
te_freqFreqReact0.1
te_twistTwistfalse

View Configuration

Views control which fixtures a pattern renders to. Defined in views.txt and optionally overridden in .lxp.

Built-in Views

ViewDescription
FixturesAll LED fixtures (edges + panels)
EdgesAll edge strips only
PanelsAll panel surfaces only
Panel SectionsGrouped by vehicle section (fore, aft, starboard, port)
OutlineFront/back silhouette edges
Outline DJGround-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 panels
  • starboard-aft — Right rear panels
  • port-fore — Left front panels
  • port-aft — Left rear panels
  • starboard-fore-single — Right front, individually normalized
  • starboard-aft-single — Right rear, individually normalized
  • port-fore-single — Left front, individually normalized
  • port-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 version string 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 class field (e.g., titanicsend.pattern.piemonte.Afterglow)
  • Check that the pattern is registered in the LX registry
  • Confirm parameter paths match TEControlTag values

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

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.