Hi, I’m Vishwah, a graphics and games programmer. I work in C++, Unreal Engine, Vulkan, HLSL and Slang, and I’m building my own engine, Agni mostly for learning and research purposes and hopefully I will be able to participate in small game jam and make games with it. More about me on my portfolio.
About these notes
This is my second brain: the notes I take while learning, published as they are. They’re written for me first, so some are polished, some are rough, and you’ll find gaps and the odd mistake. If you spot one, tell me.
Atomic notes
I write atomic notes: each note covers one idea and only that idea, like RAII, Frustum Culling or Data Race. Instead of one long document per subject, I keep many small notes and link them together.
- Small notes are reusable. SIMD is useful when I’m thinking about Parallel Computing, Data Oriented Design or CUDA, so it’s written once and linked from all three.
- Links carry the understanding. Writing down how two ideas connect is where most of my learning happens. The graph on each page shows those connections.
- They’re easy to keep up to date. When I learn more about a topic, I improve one small note instead of rewriting a chapter.
Why Obsidian
I’ve used Obsidian since March 2026. It suits this way of working:
- Plain Markdown files on my own computer. No lock-in, and they’ll still open in 20 years.
[[Wikilinks]], backlinks and a graph view make linking notes effortless, which is the whole point of atomic notes.- It’s fast and quiet. No feeds or notifications, just writing.
Why share them
I’ve decided to share about 80% of my notes publicly. The rest are personal: daily notes, unfinished drafts and work I can’t share. Publishing keeps me honest, because I explain things more carefully when someone might read them. It also shows what I’m learning and working on better than a CV can. And if these notes help someone else learn the same thing, even better.
How to explore
- Search with the bar in the top left, or press
Ctrl + K. - Follow links between notes. The graph on the right shows how a note connects to the rest.
- Start from a topic below.
Graphics and rendering
- Computer Graphics · Graphics Pipline · CPU vs GPU
- Shading: Rendering Equation · PBR Rendering · Blinn-Phong · Phong Shading ( Basic shading) · Radiance Cascades
- Modern GPU work: GPU Driven Rendering · Draw Indirect · Mesh Shaders · 3D Gaussian Splatting
- Visibility: Culling · Frustum Culling · Occlusion Culling · Occlusion Queries · Hierarchical Z-Buffering · Bounding Volume · Octree
- APIs: DirectX · ComPtr
- Classics: Bresenham’s line drawing algorithm
Game engines
- Game Engine Fundamentals · Entity Component System(ECS) · Data Oriented Design · GameObject & Entity destruction
- Unreal: Unreal A Frame’s life · Unreal Insights · Unreal Level Streaming Hitches · Unreal Smart Pointers · Different ways to send data to materials in Unreal engine 5
C++
- C++ · Favourite C++ Features · Orthodox C++ · C++ Compilation Process · Dynamic and Static linking
- Memory and objects: RAII · Rule of 5 · Smart Pointers · Shallow copying & Deep Copying · Abstract Class in C++
- Types and layout: C++ Data type sizes · Type Casting in C++ · Struct Alignment · Structure Padding in C++ · Windows Data Types · Undefined Behavior
- Containers: Dynamic Arrays · Two-dimensional arrays (2D arrays) · unordered_map · Iterator · Generic Programming
Parallelism and performance
- Parallel Computing · Parallelism · Concurrency · asynchronous
- Multithreading · Threads · Thread Pool · Data Race
- SIMD · CUDA · Pipelining · Latency · Buffer Sizes
Systems and networking
- Driver land & User land · File descriptor · Address Space Layout Randomization (ASLR)
- Socket Programming · TCP&IP · Open System Interconnection Model (OSI model)
Design and paradigms
- Four Pillars of OOPS · The big oops · No Paradigm Programming · Fat struct programming
- Patterns: Factory Design Pattern · Singleton
Algorithms
- Binary Search · Sorting · Bit Manupulation
- Greedy Algorithms · Dynamic Programming · Knapsack Problem · Fractional Knapsack
- Stochastic gradient descent