Skip to content

Projects and files

Projects

A project holds every document you have open in tabs: layouts and components. File → Save writes the whole project to one .shine file; File → Open reads it back.

  • Desktop: Save asks for a path the first time, then saves in place (Save as… to choose again). Ctrl+S, Ctrl+O and Ctrl+N work too.
  • Browser: Save downloads the file; Open uploads one. Nothing is stored on a server.

The .shine format

A compact binary file: the 4 bytes SHNE, a 2-byte format version (little-endian), then the project encoded with postcard. It is about five times smaller than the same project as JSON. Files from older versions are converted when opened: format 1’s separate schematics become layouts of boxes, and format 2’s lasers (which all interfered with each other) go onto shared source A so they simulate as before. A file from a newer Shine than yours is refused with a message to update. Preferences are not part of a project; they’re saved with the app. JSON layouts from early versions can still be opened.

Desktop app

Releases contain shine (the editor) and shine-mcp (the AI server). Command line options:

Option Effect
--log-file <path> or SHINE_LOG_FILE also write the log to a file (appended)
--log-level <filter>, SHINE_LOG or RUST_LOG log filter, e.g. debug or shine=trace

Logs always go to stderr. The Windows release opens no console window, so use --log-file there.

Browser app

The browser build is the same editor compiled to WebAssembly. Links can open things directly:

Query Effect
?example=<name> open an example, e.g. ?example=4-channel-wdm-optical-link
?tab=<name> switch to the document with that name, e.g. &tab=full-adder
?examples=demos|layouts|chips open the examples window on that tab
?chip=<name> pick a chip-circuit example, e.g. ?examples=chips&chip=wdm-demultiplexer
?renderer=webgpu use WebGPU instead of WebGL2

Names are written in lower case with dashes. If the page fails to start, it shows the error instead of a blank page.