#presentation #graphics #png #tool #latex #layout #events

bin+lib ytesrev

A presentation tool written in rust, based on sdl2

10 releases

Uses old Rust 2015

0.2.7 Jul 7, 2019
0.2.6 Jul 7, 2019
0.2.5 Jun 1, 2019
0.2.4 Nov 14, 2018
0.1.0 Aug 17, 2018

#204 in Visualization

Download history 9/week @ 2024-02-27 3/week @ 2024-03-05 3/week @ 2024-03-12 2/week @ 2024-03-26 25/week @ 2024-04-02

55 downloads per month

MIT license

2.5K SLoC


showcase (higher quality in real life, gif looks like trash thanks to compression and me not knowing how to make it better)

This is a presentation tool inspired by 3blue1brown's tool manim. Currently it supports rendering LaTeX files, relatively simple layout, reading PNGs among other things.

Differences to manim

The biggest difference is the goal of the two programs. Manim is made to render a video, while ytesrev is made to work in live situations where reactivity and dynamicity are valuable. For example, in manim, screen size and timing are pretty much constant, where ytesrev has to have a dynamic layout engine and an event system.


Check out the src/example/ folder.

Project structure

  • src/anchor/: To keep things anchored to one side of the screen
  • src/ditherer/: To create those cool text 'whoosh' effects
  • src/drawable/ Abstract definitions of drawable objects as well as drawing positions
  • src/empty/: The empty object
  • src/image/: Loading PNGs
  • src/latex/: Rendering LaTeX expressions
  • src/layout/: Definitions and implementations of layouts (stacking and splitting)
  • src/margin/: To give some object a margin
  • src/scene/: Abstract definitions of a scene (slide) and a wrapper for Drawables
  • src/solid/: A rectangle of a solid color
  • src/window/: Contains the WindowManager which is responsible for creating the window, managing events and timings and keeping track of the slides
  • src/withsize/: Give an object a constant size


~496K SLoC