Skip to content
View jjbel's full-sized avatar

Block or report jjbel

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jjbel/README.md

👋 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 can simulate particle systems, rigid-body collisions, and softbodies. It is written in modern C++20 (with 23 support upcoming) and runs on 64-bit Windows and Linux.

I'm currently improving Samarium with:

  • solving differential equations on a grid, for example fluid simulation
  • optimizing short-range forces (gravity/lennard jones), using quadtrees and hash grids
  • adding GPU support using OpenGL compute shaders, and CUDA, for all the above
  • In future, I plan to support cloth simulations, chemical reactions, and add 3D support.

rocket-ui : A telemetry app for IIT-B's Rocket Team, built using samarium.

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:

Scripting utilities in python

I have worked with Java for command line apps, and C# for Unity.

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:

  1. 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.

  2. 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.

  3. 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 memory speed has saturated. Improve your datastructures first to utilize cache locality and branch prediction, before micro-optimizing other aspects.

Pinned Loading

  1. samarium samarium Public

    2D physics simulation and rendering library in modern C++, with GPU acceleration

    C++ 8 2

  2. rocket-ui rocket-ui Public

    Rocket Telemetry GUI

    C++ 1 1

  3. resume resume Public

    My Résumé!

    Svelte 1

  4. exercycle exercycle Public

    DIY exercyle and rev counting app

    JavaScript 1

  5. large-file-finder large-file-finder Public

    Python

  6. pyreload pyreload Public

    Run commands when files change

    Python