summaryrefslogtreecommitdiff
path: root/src/toys.md
blob: 9639e9af853daf96b7f7eced08e7b93fa7364d8b (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
95
96
---
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" width="500">
</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" width="500">
</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" width="500">
</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" width="500">
</div>

World's smallest VM & bytecode compiled language? 

[Click here to find out](/toys/turing).

---

#### Euler Golf 2

<div class="text-center">
  <img src="/assets/euler.png" width="500">
</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" width="500">
</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" width="500">
</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)!