This repository contains slides for a talk given by Erik Demaine and Jayson Lynch about our CCCG 2021 paper "Yin-Yang Puzzles are NP-complete" by Erik Demaine, Jayson Lynch, Mikhail Rudoy, and Yushi Uno.
You can watch the video or read the paper for more details about the results.
This repository uses the reveal-pug-talk template to make slides by combining the following technology (all free and open source):
- reveal.js: a flexible HTML presentation framework,
extendable by plugins and themes. Here we use:
- Chalkboard: enables live drawing annotation on the slides (using pen or touch or mouse)
- Merriweather font
- Pug: a concise indentation-based notation for HTML,
which makes it easier to express reveal.js slides,
and to mix together other languages. Here we use:
- Stylus: a concise indentation-based notation for CSS (styling of HTML)
- CoffeeScript: an indentation-based language that compiles to JavaScript
- SVG Tiler: a library for converting ASCII art into high-quality SVG graphics
- SVG.js: a library that makes it easy to interact with SVG drawings
- KaTeX: a library for translating LaTeX math into HTML
- Gulp: a tool that builds the Pug code into HTML
Here's an overview of the individual files and what they do:
gulpfile.coffee
: Definitions ofbuild
andwatch
rules that run Pug onindex.pug
.index.pug
: Top-level Pug file that calls all other files. Defines the top-level structure of the document, but has no slides.slides.pug
: Slides and specific animations are defined here.index.styl
: Custom reveal.js styling and CSS layout tools.figures.coffee
: code to convert ASCII art inslides.pug
into SVG Tiler drawings (via classgraph
, for grid graphs) or interactive Yin-Yang puzzles (via classpuzzle
).yinyang.coffee
: SVG.js-based code to make interactive Yin-Yang puzzles, copied from the Yin-Yang font.yinyang.styl
: Styling for intearctive Yin-Yang puzzles, copied from the Yin-Yang font.TRVB_definition.svg
: a figure illustrating vertex breaking in the TRVB problem.TRVB_input.svg
: a sample instance of TRVB.TRVB_output.svg
: a sample solution to TRVB.puzzle_cover.png
: the cover of Puzzler issue #150.
To build the slides HTML (index.html
) from the source files:
-
Install NodeJS if you haven't already.
-
Clone the repository
-
Run the following:
npm install npm run build
If you're live-editing the file and want index.html
to continually build
and update, use the following command:
npm run watch
To assemble just the needed files into a dist
directory,
use the following command:
npm run dist
To deploy these files to GitHub Pages, use the following command:
npm run deploy