beamer
1.0.0A slide show software based on Trial
About Beamer
This is a slide show or "powerpoint" application built upon the Trial game engine. Being built with a game-engine allows you to add all sorts of interactive elements to your slides, though if we're being real, I only made this for the purpose of being cheeky in my own talks about Trial.
Basic How To
Create a lisp source file, start with (in-package #:beamer-user)
and then define your slides using define-slide
.
(define-slide hello
(h "Hello Everyone!")
(p "This is some paragraph of text that would usually be filled with Lorem Ipsum, but I'm too lazy to go generate that text right now, so I'm just typing something out here. The text will wrap properly anyway.")
(items
"You can also"
"Create lists")
(image "my-image.png" '(100 100)))
In order to actually run your slide show, load up beamer
and use start-slideshow
:
(beamer:start-slideshow "my-presentation.lisp")
You can then navigate slides with the following keys:
Page Up
Previous slidePage Down
Next slideHome
First slideEnd
Last slideEscape
Close presentationF11
Toggle fullscreen
Within the slide definitions you can use the following shorthand functions:
h
A headerp
A paragraphc
A code segmentitems
A bullet listimage
An image
The path is relative to the slide file. You have to provide a size as well, which should be a list of two elements with either both being unit numbers, or one being*
in which case the image will take up all space in that direction.arrange
A grid layout
You must specify at least the:col-sizes
and:row-sizes
.editor
A code editor
The path is relative to the slide file and can be the slide file itself. You can also pass the following options::start
A character index or string to match a line for after which the text for the editor begins:end
A character index or string to match a line for up to which the text is displayed in the editor:trim
A number of characters to trim off the beginning of each line:language
A name for a syntax highlighting scheme to use. The following are supported:NIL
:lisp
:glsl
:link
:theme
A name for a highlighting theme to use. The following are supported:NIL
:monokai
:size
The base font size
When in the editor in a slide you can use
C-s
to save the text,C-l
to reload the text, andC-c
to compile the text as lisp source.
Advanced Crap
A slide within Beamer is simply a scene
that sets up some defaults. Every shorthand function like h
just creates an Alloy component and inserts it into the UI. This means that you can also create whatever other Alloy layouts you want within the slide. And because it is a Trial scene, you can also create whatever other Trial objects you want and add them into the scene:
(ql:quickload :trial-assets)
(define-slide trial-in-slide
(h "Check this out:")
(enter-instance 'directional-light :direction (vec 0.5 -1 0) :color (vec3 1))
(enter-instance 'ambient-light :color (vec3 0.5))
(enter-instance 'basic-animated-entity :asset (org.shirakumo.fraf.trial.assets:asset :woman))
(enter-instance 'target-camera :target (vec 0 2.5 0) :location (vec 0 2 4))
(enter-instance 'pbr-render-pass))
You can of course also set up Alloy components and even tie them together with Trial objects to make the slides interactive that way.
Beamer can also be deployed into a standalone executable, though of course beware that you won't be able to load new ASDF systems in your presentations with the deployed version.