Skip to content

Repository files navigation

Rayslides

Design visually. Keep readable source. Present without the cloud.

A polished Rayslides slide with crisp type, rotated media, and a source-to-showtime flow

Rayslides is a visual slide editor and presenter built with Zig and raylib. Edit a deck on the canvas or in its plain-text .sld source. Both views stay in sync.

Rayslides Studio editing that same source-backed showcase

A Rayslides slide with rotated rounded cards, lines, and arrowheads A Rayslides slide with a rotated raster image, SVG, and rotated video poster

With Rayslides, you can:

  • edit slides directly and reuse items;
  • author raster/SVG images, videos, rounded shapes, lines, arrows, aligned text, and rotated objects through source-backed Studio controls;
  • add reveals, transitions, and semantic morph states, authored visually in Studio's Motion tab with a live preview;
  • read private notes and control a deck from a phone;
  • run Crowdplay polls on the local network;
  • preflight the exact deck and create a verified portable show folder;
  • save PNG screenshots and export a PDF; and
  • build native programs for macOS, Linux, and Windows.

Get started

Rayslides requires Zig 0.16.x. The minimum version is Zig 0.16.0.

zig build -Doptimize=ReleaseSafe
zig-out/bin/rayslides

Run the program without a file to open Studio's new-deck chooser. Use --studio to edit an existing deck:

zig-out/bin/rayslides --studio talk.sld

Before travel, run Showtime from Studio's Commands menu, write a CI-friendly report, or create a portable copy with ordinary source and assets:

zig-out/bin/rayslides --showtime-report=showtime.json talk.sld
zig-out/bin/rayslides --portable-show=talk-portable talk.sld

Blockers make either command exit nonzero. The portable command refuses an existing destination, rewrites copied asset references under assets/, then re-opens and preflights the copy before it succeeds.

During development, use zig build run -- talk.sld. On macOS, zig build -Doptimize=ReleaseSafe macos-app also creates zig-out/Rayslides.app.

Live camera items use the video renderer and therefore support fitting, cropping, rotation, opacity, morphs, posters, and the existing playback pill:

@box cam=0 video_size=1920x1080 poster_image=assets/camera-off.png x=520 y=180 w=880 h=560 fit=cover rotation=-12

On macOS, run camera decks from the bundled Rayslides.app so the system can request camera permission. On Linux, use the intended V4L2 path such as cam=/dev/video0 or preferably its stable /dev/v4l/by-id/... symlink, and add cam_format=mjpeg to reach a mode the camera offers in MJPEG alone - commonly every mode above 640x480.

Documentation

Project status

Rayslides began as a raylib-based port of renerocksai/slides. It now combines visual editing with its text-based foundation.

About

renerocksai/slides translated to raylib

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages