A port of Falling Turnip from Haskell to Futhark and Python 💥
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
.travis.yml
LICENSE
Makefile
README.md
alchemy.fut
diving-beet.go
diving-beet.py
font.ttf
futhark.pkg
game.fut
game.go
requirements.txt
step.fut
world.fut

README.md

Diving Beet

Diving Beet is a port of Falling Turnip from Haskell to Futhark and Python (or Go; see below). It is a physics imitation that uses cellular automata to implement fascimiles of gravity and (al)chemical interactions between various elements. For example, water plus fire gives steam, lava melts sand and metal (the latter at a slower rate), plants grow into water, etc.

You can look at a video of it in action - note that the choppiness (especially near the end) is due to the screen recorder not being able to keep up (it runs out of memory and starts writing to disk).

Usage

Just make run, although you'll need the Futhark compiler installed. You can insert particles by left-clicking, although you can't overwrite anything that's already there. Right-click to delete particles. Use the left/right arrow keys to select the particle to insert, and the scroll wheel to control the modification radius.

Usage with Go

Diving Beet has also been implemented with a GUI written in Go. This performs much better on some systems. Make sure you have Go and the packages github.com/veandco/go-sdl2/sdl and github.com/veandco/go-sdl2/ttf installed, and then run:

$ make diving-beet
$ ./diving-beet