Professor in computer science at MIT. Specialist in algorithms and data structures.
- Massachusetts Institute of Technology
- Cambridge, Massachusetts, USA
- https://erikdemaine.org/
Highlights
I lead (🌟) and/or contribute to (👯) the following open-source projects and documents, some of which are forks (🍴):
- 🌟Cosuite for better meetings and teaching
- Origami
- 👯FOLD is a file format for origami designs/meshes, and JavaScript code to manipulate them
- 👯Origami Simulator simulates paper folding
- 🌟Crease Pattern Editor
- Art
- 🌟Algorithmic Character Layout generates random perspective arrangements of images, as used by ourHanging Out sculpture
- 👯Virtual Glass simulates glass blowing, especially cane
- 🌟Word Ladder Designer lets you explore sequences like CAT → COT → DOT → DOG.
- 🌟Mathematical and puzzle fonts
- 🌟Ada,Coin Sliding,Cube Folding,Impossible Folding,Integer Sequence,Juggling,Orthogonal Fold & Cut,Path Puzzles,Spiral Galaxies,Strip Folding,Sudoku,Tatamibari,Tetris,Voronoi,Yin-Yang
- 🌟font-webapp is a small frontend framework (built on furls) for building these apps
- 🌟furls is a small frontend framework for synchronizing form state with the page URL
- Talks/slides using a combination ofRevealJS,Pug/Stylus,SVG Tiler, etc.
- 👯Every Author as First Author
- 🌟Puzzle Fonts About Puzzles
- 🌟Token Swapping and Robot Pivoting
- 👯Yin-Yang Puzzles are NP-complete
- 🌟Token Swapping on Trees
- 🌟reveal-pug-talk is the template for this powerful combination of slide creation technology, and isthe basis for the above talks
- 🌟Timer counts down remaining time for live presentations
- Mathematics
- 👯Tiling with Three Polygons is Undecidable: Implementation ofa paper converting Wang tiles into three polygons with equivalent tilings
- 👯PokeTree: Animated demos of Binary Search Trees (BSTs) and AVL trees with Pokémon
- 👯Every Author as First Author: source code for a humorous paper about stacking names on top of each other
- 👯TOPP: The Open Problems Project lists open problems in computational geometry
- 🌟mathcestor renders academic ancestor trees fromMathematics Genealogy Project, such asmine
- 🌟beancount counts how many papers and coauthors each author has according to DBLP
- Video games
- 🍴As-Toroids is higher-genus Asteroids
- 🌟Attractor implements magnetic puzzles/counterexamples froma paper
- 👯Bust-a-Move / Puzzle Bobble clone with hardness gadgets
- 🌟Sliding Squares Puzzle implements the classicn2 − 1 puzzle in Solid and Civet, with sliding animations
- ...replacing 🍴8 puzzle which is a small fork of a 15-puzzle implementation
- 🍴2048 without merging illustrates a 2048 variation studied ina paper
- 🌟recursed-xls2lua makes it easier to design customRecursed levels
- Figure drawing tools
- 🌟SVG Tiler combines SVG tiles according to ASCII art or a spreadsheet
- 🌟svgink converts SVG to PDF/PNG via Inkscape
- 🌟Computational Geometry Playground lets you interactively write code that computes and renders geometric objects
- LaTeX
- 👯Texlish: Better LaTeX that compiles to LaTeX
- 👯KaTeX renders LaTeX to HTML [maintainer]
- 🌟tex2svg-webworker renders LaTeX to SVG in a Web Worker (used by Cocreate)
- 👯Civet is a new programming language that merges modern ECMAScript/TypeScript with CoffeeScript and lots of additional language features and syntactic sugar, transpiling to ECMAScript or TypeScript
- 👯Hera is the parser generator that Civet is based on
- Projects here written in Civet:Algorithmic Character Layout,beancount,mathcestor,PokeTree,shtml2html,Sliding Squares Puzzle,Tiling with Three Polygons is Undecidable,Word Ladder Designer
- 👯CoffeeScript
- 🌟CoffeeScript for Python programmers: a guide
- 🌟python2coffee attempts to convert Python → CoffeeScript automatically
- 🌟WIP branch with TypeScript support (effort moved to Civet)
- Babel
- 🌟babel-plugin-module-deps tracks which CJS modules
require
/import
which others for dependency tracking (used by SVG Tiler)
- 🌟babel-plugin-module-deps tracks which CJS modules
- 👯SolidJS is a front-end JavaScript framework [docs and ecosystem teams]
- Meteor integration
- 🌟meteor-solid supports the SolidJS compiler in Meteor
- 🌟solid-meteor-data provides primitives for combining Solid and Meteor reactivity
- 🌟solid-meteor-demo is a simple example illustrating the above
- 🌟meteor-solid-template-helper enables use of Solid components inside Meteor Blaze templates
- 👯solid-bootstrap: Bootstrap 5 components
- Meteor integration
- Meteor is a full-stack JavaScript framework
- 🍴edemaine:file-collection stores uploaded files in MongoDB GridFS (used by Coauthor)
- 🍴edemaine:sharejs is an aging integration with CodeMirror 5 and ShareJS (used by Coauthor)
- 🌟edemaine:static-pug renders staticPug content
- 🍴@edemaine/meteor-tracker is an NPM version of
meteor/tracker
andmeteor/reactive-var
for testing simple Meteor code without Meteor (used by solid-meteor-data)
- 🌟preact-render-to-dom converts Preact VDOM to DOM or xmldom or jsdomwithout reactivity, faster than stringifying and parsing (used by SVG Tiler)
- 🍴codemirror-spell-checker adds basic English spell checking to CodeMirror 4
- 🌟shtml2html statically renders Apache's server-parsed HTML
- Discord/Slack
- 🍴slack-backup exports Slack data (including private channels) for Discord import
- Web scripts
- 🌟dark-monkey adds dark(er) modes to some websites
- 🌟github-issue.js minimalizes a GitHub issue for printing as a referee response
- 🌟when2meet-subset.js enables toggling subset of users in when2meet results view
PinnedLoading
- coffeescript-for-python
coffeescript-for-python PublicCoffeeScript for Python programmers (a guide)
Something went wrong, please refresh the page to try again.
If the problem persists, check theGitHub status page orcontact support.
If the problem persists, check theGitHub status page orcontact support.
Uh oh!
There was an error while loading.Please reload this page.