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 UpPrevious slidePage DownNext slideHomeFirst slideEndLast slideEscapeClose presentationF11Toggle fullscreen
Within the slide definitions you can use the following shorthand functions:
hA headerpA paragraphcA code segmentitemsA bullet listimageAn 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.arrangeA grid layout
You must specify at least the:col-sizesand:row-sizes.editorA code editor
The path is relative to the slide file and can be the slide file itself. You can also pass the following options::startA character index or string to match a line for after which the text for the editor begins:endA character index or string to match a line for up to which the text is displayed in the editor:trimA number of characters to trim off the beginning of each line:languageA name for a syntax highlighting scheme to use. The following are supported:NIL:lisp:glsl:link
:themeA name for a highlighting theme to use. The following are supported:NIL:monokai
:sizeThe base font size
When in the editor in a slide you can use
C-sto save the text,C-lto reload the text, andC-cto 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.