# Prepare an exhibition

**Prefer live rendering for an exhibition.** Let the artwork's program produce its images, movement and interactions on the display. Compressed images and clips are useful previews and reference captures; reserve them for situations where running the work is impractical.

The museum does not need to acquire, borrow or hold the NFTs to render them. Owners can keep their editions in their wallets throughout the exhibition. Agree the presentation and attribution with the artist, then run the viewer without a wallet connection or platform approval.

The institution can also participate as a revenue-sharing collaborator. An artist can configure a gallery or museum to receive an agreed share of project proceeds during the exhibition through **Additional Payee**. [Exhibition collaborations](/docs/exhibition-collaborations) explains the arrangement, including confirmed start/end updates and project-wide participation.

## Start museum mode

Open a project in the [art viewer](/) and choose **start museum mode** in the bottom bar. On a narrow screen, expand the bar's menu first. It starts immediately from the loaded project, with no configuration required.

The original cycle fades into a random live edition, returns to that project’s grid after roughly 20 seconds, then chooses another edition on a 30-second cycle. The grid uses the project’s normal preview settings and preloads its images while the live edition plays. A bounded cache retains decoded previews between cycles. Controls align below the artwork’s left edge and the project caption below its right edge. Controls fade when idle; move the pointer or tap **•••** on the left to reveal them. Use **dark** or **light** to change the surrounding field.

## Optionally customize the exhibition

The separate **⚙ Museum settings** button opens optional configuration. Keep **Museum mode** selected and name the exhibition. Starting from these settings uses the same edition-and-grid mechanics with your choices; the main **start museum mode** button always starts the current project with the original defaults.

1. **Select projects.** Include a whole project by leaving its edition field empty. Enter numbers such as `1, 3, 7-12` for a subset. Combine whole projects and selected editions from other projects in the same exhibition.
2. **Filter by collection wallets, if useful.** Enter full Ethereum addresses to include only works held by any of those wallets within your selection. The display never takes custody. Archive mode identifies the ownership snapshot it uses; a snapshot is not a current ownership check.
3. **Set duration and order.** Keep random selection each cycle, choose project-selection order then edition number, or shuffle once and repeat that order. Adjust time per edition and time on the grid. The grid shows only the selected editions of the current project. Turn off **Return to the project grid between editions** for continuous edition-to-edition playback; with just one selected edition, it runs continuously.
4. **Choose presentation.** Use black or white surroundings, each project's artist CSS, or custom exhibition CSS. Custom CSS applies to the artwork stage through the existing classes; staff controls stay separate. Labels can show the title, artist, edition and readable URL. Visitor interaction can be enabled or disabled.
5. **Review selection.** Check the exact resulting list, then choose **Start museum mode**. Missing editions or unresolved ownership prevent a filtered show from quietly proceeding with an incomplete selection.

The reviewed list remains fixed during playback. Review it again to include new mints or changed ownership. For a fixed display outside Museum mode, open the edition's `/#/<projectId>/<editionId>` URL directly.

## Operate the display

Edition views render the work live. The default returns to the grid between editions; optional settings can turn that off. Open **•••** for additional controls: **Hold this edition** pauses the cycle while the artwork continues running, and **Previous** or **Next** chooses another work.

**Blackout** temporarily covers the display while the artwork keeps running. The gear returns to optional settings. **stop museum mode** ends playback; Escape also stops it when the browser delivers that key to the page. Browsers may consume the first Escape to leave fullscreen, so use Stop to be certain playback has ended. Fullscreen availability and screen wake-lock support depend on the device; rehearse the actual installation.

Use **Save settings** to keep the configuration in this browser. **Export settings** saves a portable JSON file; **Import settings** restores it on another viewer using the same network. Settings contain the selection and presentation choices, not the artwork source or a permanent ownership record. After a restart, reopen museum settings, review the selection and start the show.

## Projection mapping mode

Choose **Projection mapping** in museum settings to send the reviewed editions into the [gallery projection tool](/immutablesArtGallery.html?mode=program). The current mapping runtime supports **p5 projects**. Use Museum mode for the other supported artwork renderers.

The selection becomes a new scene, preserving existing scenes and calibrated surfaces. Each surface initially receives the selected sequence; arrange different sequences on different surfaces in the timeline as needed. The scene repeats until you change the programming. A missing edition in the gallery bundle must be resolved before importing the selection.

1. **Set up projector outputs.** Add an output for each projector or display and create its surfaces. A surface is an area where an artwork will appear.
2. **Calibrate the room.** Open **calibrate** on the projector display and press **F** (or **fullscreen ⛶**) before aligning to the room. Each surface shows a white grid on black, with an outline and centre cross to check perspective. Drag the corners onto the physical wall, panel or object; **grid: on/off** toggles the pattern. The artwork and corner handles update together when the viewport changes.
3. **Program the show.** Use the timeline to choose editions, set block durations and transitions, and arrange scenes. It also supports project pools and trait-based selections. Scrubbing chooses the scheduled work; it does not seek through a recording of the generative program. **Run here** is fixed at the top right of both programming and calibration, above the floating panels. From the timeline it starts fullscreen playback at the current playhead, keeping the live artwork running.
4. **Open outputs.** Use the Projectors panel to open each output window, move it to its projector and click **Enter fullscreen ⛶** or press **F**. This uses browser fullscreen, hiding tabs and the address bar. Match the display and fullscreen size used for calibration: a smaller window scales the mapping to its viewport. **H** hides or restores the tools without restarting the artwork or leaving fullscreen; from a clean output it restores the timeline at the current point. **C** returns the same output to calibration; **Run here** returns to clean playback. These mode switches keep the page open so the browser stays fullscreen. **B** toggles blackout during clean playback. Calibration grids are removed from the live artwork layer, and the fullscreen button disappears in fullscreen. Keyboard shortcuts also work when the artwork has focus, but leave text-entry fields alone. Allow the browser to open the output windows.
5. **Save and rehearse.** Export the space, show or both from calibration. Retain those files alongside the exact gallery build and the room's installation notes.

The mapping runtime renders the programs live on a black field. It embeds the supported source, p5 runtime and edition mint inputs from its build snapshot. Museum mode’s grid intervals, CSS and labels do not carry into the projection timeline. Coordinate the output windows in the same browser on the same computer; this is not a networked multi-computer control system.

For offline use, retain the downloaded gallery file and test the whole installation disconnected. Any external dependency used by an artwork still needs to be available. Do not assume a fresh online mint is included in an older gallery build.

## Time and interaction

For continuously evolving work such as EoD, a recorded loop shows a finite excerpt. Prefer a long live presentation or a single selected edition. Changing editions restarts the next program; agree appropriate duration and restart behavior with the artist.

Record the edition, live/capture choice, viewport, orientation, browser and renderer versions, and relevant start time. For clock-dependent works, preserve the installation's time and timezone settings. Agree with the artist how restarts should be handled.

## Interaction and attribution

Test actual touch and keyboard controls, including idle collapse and how visitors reopen them. Document intentionally limited interaction with the artist. A photograph cannot capture the full behavior of an interactive work.

A useful label includes title, artist, edition, project, medium, playback mode and a readable edition URL or QR code. Identify a collection where agreed. Verify attribution from the project records rather than guessing from a wallet address. Visitors can open the project and mint on their own devices under its existing mint conditions.

## Installation rehearsal

1. Open the exact edition on the target hardware and confirm rendering at the intended resolution.
2. Run for the intended session length; check performance, sleep settings and restart recovery.
3. Test the visitor input device, readability, motion and any artwork-specific audio behavior.
4. Rehearse with the intended network conditions. For offline display, disconnect and test every dependency required by the work.
5. Keep installation notes and reference captures with the [archive](/docs/preservation).

The display does not need a wallet connection. Use the [verification page](/verify) for downloaded viewers and retain the exact tested build.

Source basis: `MuseumExhibition`, `MuseumPlayer`, `museumSettings`, `ArtworkControls`, `tools/gallery-shell.html` and `tools/build-gallery.js`.
