Newtonian Dance
Generic n-body simulation using Newton's Law of Gravity and other laws.
tech: TS, SolidJS, canvas
concepts:
- structure-of-arrays
- data-oriented-design
- classical-mechanics
I'm a professional software-engineer, recreational mathematician, unlicensed language-designer.
Here I build to understand.
I care about conceptual clarity and understanding stuff deeply.
Say hi to me at
Generic n-body simulation using Newton's Law of Gravity and other laws.
tech: TS, SolidJS, canvas
concepts:
- structure-of-arrays
- data-oriented-design
- classical-mechanics
An implementation of an interactive version of the Picture Language from SICP.
tech: JS, canvas, gifs
concepts:
- SICP Picture-Language
- reactive-programming
WASM Compiler/Runtime for the Polymede language I designed - all in about 6 weeks distributed over 2 months. Special implementation constraint: can't use any non-trivial libraries or tooling (zero-dependency bootstrap compiler) 💪
tech: Rust, WebAssembly, JS
concepts:
- Language-design
- Parametric-Polymorphism
- Bidirectional-Type-Checking
- Algebraic-Data-Types
- Closures
- pattern-matching
- Lexing/Top-down-parsing
- IO-Monad & side-effect management
- Graph Memory Machine (GMM) intermediate representation
- tail-calls
- Custom WASM-Bytecode-Serializer
- Hand-rolled copying 2-space GC in ~1000 lines of .wat (Cheney's Algorithm)
MLP implementation in Rust. Thinking through memory-layout by implementing my own Linear Algebra
tech: Rust
concepts:
- Neural-Network
- Multilayer-Perceptron
- Adjoint-Linear-Operators
- Backpropagation on Riemannian-Manifolds
- Stochastic-Gradient-Descent
- MNIST
Interpreter and a Type inference for a (Polymorphic) Typed Lambda Calculus, and a register machine visualization.
tech: Elm, ElmUI
concepts:
- HM type-inference
- let-polymorphism
- module-system
- parsing-combinators
- register-machine
Visualization of a stack machine that supports closures, continuations, actor-model.
tech: Elm
concepts:
- incremental stack-machine-simulator
- lexical-environment
- runtime-stack as first-class value
- delimited/undelimited-continuations
- call/cc
- message-passing concurrency
- actor-model-runtime
Visualizing combinatorial generators and formulas.
tech: React, KaTeX, JS-Generators
concepts:
- low-latency math-formula-rendering
- subsets, multisets, permutations, variations
- lazy-generation with ES6 Iterators
Parsing-Combinators library
tech: js
concepts:
- monads/functors/applicatives
- choice/Cartesian/Kleene-structures
- do-notation via ES6 generators
Here are some of my old math essays handwritten in Krita. Maybe one day I'll muster enough gumption to typeset them. Why Krita? Krita allowed me to understand and write math at the same time (something like LaTeX or Typst do not), and unlike paper, it also allowed me to tweak, rearrange, doodle, edit in real time. The only disadvantage is it's not really machine-readable. Ideally, I want to have a tool that allows for Understanding, Writing, Editing, Machine-Readability (and a few other things) at once, but to my knowledge there's nothing like that out there.