👋 Hello there! I'm Jai.
My flagship project is Samarium, a 2-d physics simulator and rendering engine. It channels my love of computer graphics, high performance computing, and physics simulations. It is written in modern C++20 (with 23 support upcoming) and runs on 64-bit Windows and Linux.
I've also messed around with Vulkan and Rust's WGPU.
My other projects/interests:
Arduino:
- DIY Exercyle : converting a bicycle to an exercycle, with a rev counting app.
- LED Animations : cool RGB animations using LED strips.
Frontend stuff, especially using electron and svelte-js:
- rocket_ui : A telemetry app for IIT-B's Rocket Team
- my personal site/resume
- a ram and net usage widget
Scripting utilities in python
- large-file-finder : cleanup your disk easily
- pyreload : run scripts when files change
- thor : yet another build system for C++
I'm currently learning functional programming, particularly in Lean4, Haskell and OCaml.
I love math/sciencey animations, and was inspired by:
- 3Blue1Brown: manim, Summer of Math Exposition
- Dan Shiffman (legend): Processing and Coding Train
- Mathologer, Minutephysics, Veritasium
My philosophies:
-
Open source for the win:
FOSS and the surrounding community and online resources carry me through my developer journey. I've followed the development of the linux kernel, and Blender.
-
Keep things simple and lightweight.
As Colin Chapman put it, "Simplify, then add lightness”. Modern apps are way too bloated, slow, and complex.
For the wonders that optimization can work, see Kaze's work on Super Mario 64.
KRAZAM and Programmers are also human have some hilarious sketches on microservices and the bane of the javascript ecosystem.
-
Memory bottlenecks are the biggest reason for slow performance in modern apps.
CPU performance has always been growing (even ignoring "Moore's Law is dead"), but memeory has kinda plateu'ed. Improve your datastructures first to utilize cache locality and branch prediction, before micro-optimizing other aspects.