blob: 0351468ca180c73a708839e51063eb4e6cd57c7b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
---
layout: base.njk
title: Toys
description: A collection of little interactive toys and experiments
---
## Toys!
These are the web-based toys I've ported over (so far) from my old website. New and improved!
---
#### The Abstraction Engine
<div class="text-center">
<img src="/assets/lambda.png" style="max-width:500px;width:100%;">
</div>
A game inspired by [Baba Is You](https://store.steampowered.com/app/736260/Baba_Is_You/). Your character is a Lambda and you aim to eat the [Curry](https://en.wikipedia.org/wiki/Currying) by writing real lambda-calculus terms and applying them to other lambda-calculus terms to solve puzzles. The core is a [custom ECS engine and lambda calculus interpreter in typescript](https://code.liz.coffee/the-abstraction-engine-ts.git/). So far I've only gotten two levels as a "tech demo" showcasing basic functionality. But the groundwork was put in place to get a [fixed-point-combinator](https://en.wikipedia.org/wiki/Fixed-point_combinator) level written.
Due to the game's inner complexity and the fact that I just keep getting discouraged, I've been procrastinating making a full rewrite and release of this on real platforms as my first "published" game. Hopefully I get there some day soon. Maybe I just need to set myself a deadline.
[Play now](https://the-abstraction-engine.pages.dev)!
---
#### Tabloid Closures
<div class="text-center">
<img src="/assets/tabloid.png" style="max-width:500px;width:100%;">
</div>
For fun (and procrastination) I added closures to the [Tabloid](https://tabloid.vercel.app/) esoteric programming language and wrote lambda-calculus-inspired primitives of pair/cons, then extended them to
valid merge sort and binary tree traversal programs.
[It is horribly inefficient](/toys/tabloid).
---
#### Gödel Number Playground
<div class="text-center">
<img src="/assets/godel.png" style="max-width:500px;width:100%;">
</div>
A PEG grammar (I'd hardly call this a compiler) which computes the [Gödel number](https://en.wikipedia.org/wiki/G%C3%B6del_numbering) from a valid L program.
[View your favorite L program's Gödel number here](/toys/godel).
---
#### Turing Machine
<div class="text-center">
<img src="/assets/turing.png" style="max-width:500px;width:100%">
</div>
[I swear the tape is infinite](/toys/turing).
---
#### Euler Golf 2
<div class="text-center">
<img src="/assets/euler.png" style="max-width:500px;width:100%">
</div>
Euler Golf 2 is a reimplemetation and solver of [Val Hovey's Euler Golf](https://valhovey.github.io/EulerGolf).
[Play now!](/toys/euler-golf)
---
#### Julia Explorer
<div class="text-center">
<img src="/assets/julia.png" style="max-width:500px;width:100%">
</div>
A quick experiment with [GPU.js](https://gpu.rocks/#/).
[Explore julia set fractals in real time](/toys/julia).
---
#### A Fourier New Year
<div class="text-center">
<img src="/assets/fourier.png" style="max-width:500px;width:100%">
</div>
A quick app I hacked together for some friends on Discord at the time to explore a discrete fourier transform of the function of their mood wrt time for the year.
[Drag your mouse on a canvas here](/toys/fourier)!
|