Skip to content

feat: add interactive live preview server with web UI#13

Merged
AsPulse merged 13 commits into
mainfrom
feat/interactive-preview-server
May 27, 2026
Merged

feat: add interactive live preview server with web UI#13
AsPulse merged 13 commits into
mainfrom
feat/interactive-preview-server

Conversation

@AsPulse
Copy link
Copy Markdown
Member

@AsPulse AsPulse commented May 27, 2026

Adds tellur-live, an interactive preview server that hot-reloads
timeline cdylib plugins and streams frames to a bundled React/Vite
web UI. Lets you iterate on a timeline without recompiling the host
binary, with a scrub-precise frame API alongside h264 segment streaming
for smooth playback.

  • tellur-live (new crate): plugin host (libloading-based hot-reload,
    filesystem-watch rebuild), HTTP server with a small REST surface, and
    a CLI binary. export_timeline!("id", "Title", build_fn) /
    export_timeline_collection! macros expose a TimelineCollection
    from a cdylib.
  • REST API: /api/info, /api/frame (single PNG / RGBA), /api/stream
    (chunked frame stream for scrubbing), /api/video.mp4 (h264 for
    smooth playback), /api/events (SSE).
  • Web UI (React/Vite, bundled into the cdylib): preview scrubber,
    transport (play / pause / loop / speed), timeline editor with viewport
    bar, resolution + FPS presets, automatic cache invalidation on
    plugin reload. Hybrid playback path keeps h264 for playback and RGBA
    for scrub.
  • Demo plugin (examples/demo_timeline_plugin.rs cdylib + shared
    demo_scene/ module): a 7.6 s instrument-themed motion-graphics piece
    across four scenes (OVERTURE / FIELD / SCAN / RESOLVE) with a
    persistent HUD scaffold, layered DropShadow halo + drop, and a cached
    Hud VectorComponent whose Hash/Eq is driven by Phase + a section
    discriminator so the rasterized HUD is reused across the steady-state
    span of the timeline.
  • mp4 export example: examples/demo_timeline_mp4.rs reuses the same
    demo_scene module via #[path] so the live preview and the offline
    encoder always render the same scene.

@AsPulse AsPulse merged commit c55d9cc into main May 27, 2026
14 checks passed
@AsPulse AsPulse deleted the feat/interactive-preview-server branch May 27, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant