IN PROGRESS An roguelike-like about understanding yourself and your environment through observation and creative spellcasting.
Written in Common Lisp
Wiggle World is just a toy about shape and motion. I thought of it one day while watching ducks and turtles at a local pond.
When ducks emerged from the water, their butts wiggled back and forth, seemingly independent of the rest of their bodies. If you've ever seen a duck shake off some damp, you'll know what I mean.
When turtles sank down into the water, their features faded as their depths increased. Eventually, I could see only vague blobs with stumpy limbs drifting in and out through patches of light.
Shapes and light and motion are what I saw that day at the pond. I thought it might be fun to draw some shapes and blobs onto a screen where one could watch them drift and shift and wiggle. So that's what Wiggle World does.
You can play with it here.
Was a game I made for the 2019 Autumn Lisp Game Jam. It is about a person out on a street on a cold winter day, stopping people who pass by and asking them for money or help. The protagonist wishes to buy some coffee and some food at the nearby convenience store.
Encrypted file synchronization.
I made this because I wanted a nice way to keep some files in sync between different personal laptops that
A Common Lisp library for defining functions with embedded tests. The tests are run whenever functions are recompiled. Great for interactive development!
Flexo is my Common Lisp system for developing static sites. It is very much in its early stages.
It has been written to take advantage of SLIME for highly interactive static-site development. The site you are reading now was created with Flexo.
Zettelgunk is a notes sytem for Emacs.
It is my own contribution to the trendy category of zettelkasten systems.
Just a fun, if somewhat ad-hoc, project.
Although Spoof is unfinished, the interpreter supports:
Generators The Way I Want Them Generated is a Common Lisp System I undertook to create purely out of curiosity. Specifically, I wanted to see how I might generate permutations of possibly very large vectors, one at a time. I had no practical ambition in mind. As such, GTWIWTG is not very fast - it is, however quite good at generating sequences of billions of members without killing your machine's memory. Now... whether or not you'll ever reach the billionth member of your huge sequence is another story. GTWIWTG is, again, a bit slow.
After sampling a few cleverer approaches to generators in the Common Lisp ecosystem, I decided to write my own, less clever, system. While the prior art in this domain is generally very well done, I found most of it difficult to debug. As a result, GTWIWTG became a well documented, straightforward, and perhaps even naive approach to lazy sequence generation.
I have also written a tutorial. .
The quest of parzival is to make it fun and easy to design and parse simple embedded languages for Common Lisp applications.
I undertook to write parzival in order to re-introduce myself to Common Lisp after a long caesura in my Lisping activity.
There is a Tutorial.
Imbricate is a command-line tool used to create spritesheets for games.
It turns nested folders of PNG files into a single image containing all the others.
Additionally, imbricate produces a metadata file that describes which tiles are located at which positions in the sheet.
Animise is a Common Lisp system that implements a Lispy language for describing tweens for animation with various easing functions. It was intended for use in simple animations for game and UI development, but could possibly serve other purposes. Whenever you might need a time-varying numerical value in your Common Lisp program, it can be tweened and eased with Animise.