Some software I have made always for fun, sometimes for work too.
casioRPN (2016)
Casio script
In the fall of 2015 when I started high schoool, I got my uncles old
HP 48S RPN calculator.
It was amazing. With the RPN interface, I could do the calculations
in my Physics 101 class with ease and even graph functions in 3D
when I was bored. Unfortunately after a lovely 2 months, someone
stepped on my backpack and the screen broke. I was devastated but I
decied to make the best of it. I got instead a Casio fx-9750GII and
programmed an RPN calculator inside it. The interface was kind of bad
and it ran much slower than the HP, but it was kinda fun.
The RPN program running.
ogl (2017)
C++
A fractal landscape generator using the diamond-square method and a
rendered using OpenGL.
Github
tomb (2018)
Haskell
A very elementary ray tracer using
Haskell. GithubTwo spheres rendered by tomb
cjeeq (2021)
C
Reimplementation
of jeeq in C using
the OpenSSL library.
In order to encrypt messages on the blockchain, we want to encrypt
and decrypt with users' ECDSA key-pairs. It uses the ElGamal
encryption scheme to encrypt short messages with the receiver's
public key and the receiver can then decrypt them with their private
key. Github.
schapl (2022)
Scheme
An APL-like vector calculator.
Mainly a project to play around with Lisp. Rob Pike and others are
working on something similar in Go
called Ivy, but much
more advanced. Github.
Goulden-Jackson cluster method (2022)
Sage
For my BS project, I implemented
the Goulden-Jackson
cluster method in Sage which you can use it to count
permutations that avoid center types of patterns. This can be used
to compute odds in Penney's
game. Github