Helios Studio
The Helios Studio is a Vite-based development server and preview environment. It provides a hot-reloading environment for building compositions and acts as the "Editor" interface for Helios projects.
Quick Start
Run the studio from your project root:
npx helios studio
This will start a local server (typically at http://localhost:5173) where you can view and debug your composition.
Features
Playback & Preview
- Interactive Timeline: Scrub through your animation frame-by-frame.
- Hot Reloading: Preserves timeline state (current frame) when you edit code.
- Audio Controls: Volume slider and Mute toggle.
- Safe Area Guides: Toggle Action/Title Safe guides and Crosshair.
- Keyboard Shortcuts:
Space: Play/Pause
Arrow Left/Right: Step 1 frame
Shift + Arrow: Step 10 frames
Home: Seek to start
I / O: Set In / Out points (Playback Range)
L: Toggle Loop
MCP Server
The Studio runs a Model Context Protocol (MCP) server, allowing AI agents to:
- Inspect composition schemas.
- Update input props.
- Trigger renders.
- Create new compositions.
Props Editor
The Props Editor generates a UI based on your HeliosSchema.
- Groups: Organize props into collapsible sections using the
group schema property.
- Schema-Aware Inputs:
number: Slider (if min/max set), Stepped Slider (if step set).
color: Color picker.
boolean: Toggle switch.
string: Text input or Enum dropdown.
image, video, audio, font: Asset selector with preview.
model: 3D Model selector (.glb, .gltf).
json: JSON file selector.
shader: Shader file selector (.glsl).
- Recursive Support: Generates nested UIs for
object and array types.
- Drag & Drop: Drag assets from the Assets Panel directly into compatible inputs.
- Metadata Editing: Click "Edit Composition" to change Width, Height, FPS, and Duration.
Assets Management
- Assets Panel: View and manage files in your
assets/ directory.
- Upload: Drag & drop files onto the panel to upload them.
- Previews: Rich previews for video (hover-play), audio, fonts, and images.
- Supported Types:
- Images: jpg, png, svg, webp
- Audio: mp3, wav, ogg
- Video: mp4, webm
- 3D: glb, gltf
- Data: json
- Shaders: glsl, vert, frag
Render Management
- Renders Panel: Trigger server-side renders directly from the UI.
- Configuration: Select format (MP4/WebM), resolution, and codec.
- Progress: Track render progress and cancel jobs if needed.
- Persistent Jobs: Render history persists across server restarts.
- Client-Side Export: Export directly from the browser using WebCodecs.
Environment Variables
Common Issues
- Port in Use: If 5173 is taken, Vite will try the next available port. Check the terminal output.
- File Not Found: Ensure your composition HTML file exists in the directory or subdirectories of the root.
Source Files
- CLI Command:
packages/cli/src/commands/studio.ts
- Studio App:
packages/studio/
1---2name: helios-studio3description: Studio tool for developing and previewing Helios compositions. Use when you want to launch the interactive development environment or manage assets.4---56# Helios Studio78The Helios Studio is a Vite-based development server and preview environment. It provides a hot-reloading environment for building compositions and acts as the "Editor" interface for Helios projects.910## Quick Start1112Run the studio from your project root:1314```bash15npx helios studio16```1718This will start a local server (typically at `http://localhost:5173`) where you can view and debug your composition.1920## Features2122### Playback & Preview23- **Interactive Timeline:** Scrub through your animation frame-by-frame.24- **Hot Reloading:** Preserves timeline state (current frame) when you edit code.25- **Audio Controls:** Volume slider and Mute toggle.26- **Safe Area Guides:** Toggle Action/Title Safe guides and Crosshair.27- **Keyboard Shortcuts:**28 - `Space`: Play/Pause29 - `Arrow Left/Right`: Step 1 frame30 - `Shift + Arrow`: Step 10 frames31 - `Home`: Seek to start32 - `I` / `O`: Set In / Out points (Playback Range)33 - `L`: Toggle Loop3435### MCP Server36The Studio runs a Model Context Protocol (MCP) server, allowing AI agents to:37- Inspect composition schemas.38- Update input props.39- Trigger renders.40- Create new compositions.4142### Props Editor43The Props Editor generates a UI based on your `HeliosSchema`.4445- **Groups:** Organize props into collapsible sections using the `group` schema property.46- **Schema-Aware Inputs:**47 - `number`: Slider (if min/max set), Stepped Slider (if step set).48 - `color`: Color picker.49 - `boolean`: Toggle switch.50 - `string`: Text input or Enum dropdown.51 - `image`, `video`, `audio`, `font`: Asset selector with preview.52 - `model`: 3D Model selector (.glb, .gltf).53 - `json`: JSON file selector.54 - `shader`: Shader file selector (.glsl).55 - **Recursive Support:** Generates nested UIs for `object` and `array` types.56- **Drag & Drop:** Drag assets from the Assets Panel directly into compatible inputs.57- **Metadata Editing:** Click "Edit Composition" to change Width, Height, FPS, and Duration.5859### Assets Management60- **Assets Panel:** View and manage files in your `assets/` directory.61- **Upload:** Drag & drop files onto the panel to upload them.62- **Previews:** Rich previews for video (hover-play), audio, fonts, and images.63- **Supported Types:**64 - Images: jpg, png, svg, webp65 - Audio: mp3, wav, ogg66 - Video: mp4, webm67 - 3D: glb, gltf68 - Data: json69 - Shaders: glsl, vert, frag7071### Render Management72- **Renders Panel:** Trigger server-side renders directly from the UI.73- **Configuration:** Select format (MP4/WebM), resolution, and codec.74- **Progress:** Track render progress and cancel jobs if needed.75- **Persistent Jobs:** Render history persists across server restarts.76- **Client-Side Export:** Export directly from the browser using WebCodecs.7778## Environment Variables7980- `HELIOS_PROJECT_ROOT`: Override the root directory scanning path.81 ```bash82 HELIOS_PROJECT_ROOT=./my-project npx helios studio83 ```8485## Common Issues8687- **Port in Use:** If 5173 is taken, Vite will try the next available port. Check the terminal output.88- **File Not Found:** Ensure your composition HTML file exists in the directory or subdirectories of the root.8990## Source Files9192- CLI Command: `packages/cli/src/commands/studio.ts`93- Studio App: `packages/studio/`