Reading a script and proposing cues is the eye-catching part, but the reason it holds together is that the same server knows your fixtures and their DMX channels, so a generated look resolves to real values on real instruments. Playback is here too: once the cue list exists, the show runs through the same tools that built it.
A lighting design server for the LacyLights system. It manages projects and DMX fixtures, generates and edits looks, builds cue sequences from a script, and drives playback while a show is running.
- list_projects, create_project, get_project_details, delete_project — productions and their data
- get_fixture_inventory, analyze_fixture_capabilities, create_fixture_instance, update_fixture_instance, delete_fixture_instance — the fixtures in a rig and what each one can do
- get_channel_map and suggest_channel_assignment — the DMX channel map, and optimal assignments for a batch of fixtures
- generate_look — a look built from a description and the production's context
- analyze_script — lighting cues and suggestions extracted from a theatrical script
- optimize_look — rework a look for energy use, dramatic impact or simplicity
- update_look, activate_look, fade_to_black, get_current_active_look — change a look, put it live, black out, or ask what is up
- add_fixtures_to_look, remove_fixtures_from_look, get_look_fixture_values, ensure_fixtures_in_look, update_look_partial, bulk_update_looks_partial — fixture-level edits across one look or many
- create_cue_sequence, generate_act_cues, optimize_cue_timing, analyze_cue_structure — build a cue list for an act and tune its timing
- update_cue_list, add_cue_to_list, remove_cue_from_list, update_cue, bulk_update_cues, reorder_cues, get_cue_list_details, delete_cue_list — edit the cue list itself
- start_cue_list, next_cue, previous_cue, go_to_cue, stop_cue_list, get_cue_list_status — run the show
- Look boards: list, create, update and delete boards and their buttons, place buttons on the canvas, and fire a look from one
A running lacylights-go backend, reachable at LACYLIGHTS_GRAPHQL_ENDPOINT, and an OpenAI key in OPENAI_API_KEY for the generation tools. Node with the project installed and built; the client is pointed at the wrapper script with an absolute path. CHROMA_HOST and CHROMA_PORT are optional and enable the retrieval features.
