<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home on Sandilya Jandhyala</title><link>https://jysandy.github.io/</link><description>Recent content in Home on Sandilya Jandhyala</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 26 Jan 2026 16:30:29 +0000</lastBuildDate><atom:link href="https://jysandy.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Optimizing Volumetric Particles with AI-Assisted Coding</title><link>https://jysandy.github.io/posts/ai-for-graphics/</link><pubDate>Mon, 26 Jan 2026 16:30:29 +0000</pubDate><guid>https://jysandy.github.io/posts/ai-for-graphics/</guid><description>From 2024-25, I didn&amp;rsquo;t use AI to generate any code in my projects. This was mainly because I was a student, but I was also quite unimpressed with generative AI at the time. I would occasionally ask ChatGPT to explain some rendering technique or some other issue, and at least 30-50% of what it told me was hallucinated nonsense.
The November 2025 crop of models, however, have received widespread praise from many developers I respect, including public figures like antirez, torvalds and mitsuhiko as well as my own colleagues.</description></item><item><title>Instancing Leaves with Mesh Shaders</title><link>https://jysandy.github.io/posts/mesh-shaders/</link><pubDate>Sun, 01 Jun 2025 17:00:00 +0100</pubDate><guid>https://jysandy.github.io/posts/mesh-shaders/</guid><description>In my previous post, I introduced the idea of L-systems and how I used them to generate foliage procedurally. I quickly ran into performance issues, which I was able to address somewhat with frustum culling. In this post, I&amp;rsquo;ll explain how I further optimized the scene by using DirectX 12&amp;rsquo;s new mesh shader pipeline. I&amp;rsquo;ll also touch on my use of a Z-prepass, which mitigated some overdraw issues, especially with a large number of trees and leaves.</description></item><item><title>Procedural Foliage Rendering with L-systems and Geometry Instancing</title><link>https://jysandy.github.io/posts/procedural-trees/</link><pubDate>Sat, 12 Apr 2025 16:02:56 +0100</pubDate><guid>https://jysandy.github.io/posts/procedural-trees/</guid><description>Procedurally generated bushes and trees are the latest addition to my engine. Although I used pre-made textures for the bark and leaves, the geometry for the trunk is generated entirely through code and each leaf is drawn separately through GPU instancing. This scene has some of the largest numbers I&amp;rsquo;ve ever had to deal with in any application: each tree has 467,856 triangles making up the trunk and branches and it comes with 30,600 leaves made of 4 triangles each.</description></item><item><title>Elementary Water Rendering</title><link>https://jysandy.github.io/posts/gradient-water-rendering/</link><pubDate>Sun, 12 Jan 2025 10:50:57 +0530</pubDate><guid>https://jysandy.github.io/posts/gradient-water-rendering/</guid><description>I set out to create a water rendering system for Gradient, my DirectX 11 renderer project. As someone new to graphics programming, diving into water rendering has been both exciting and challenging. This blog post shares my experience building my first water rendering system.
Wave modelling and generation One of the most important components of water rendering is deforming a mesh to simulate waves convincingly. A water surface is typically modeled as a height field, where the height of the mesh at any given point is a periodic function of position and time.</description></item></channel></rss>