graphics

I wanted a hero section that reacts to being touched. Not a video loop of water, not a looping GIF — an actual surface that ripples where you click it. The effect itself took an afternoon. Everything around it took considerably longer, and that is the part worth writing down. Here is what it ended up looking like: live demo The simulation The heavy lifting is done by jquery.ripples , a small plug…

Every web game I have worked on grew its own little particle system. It always starts the same way: a pool of sprites, a velocity, a lifetime, a fade. Two hundred lines and you have sparks. Then the requests arrive. Can the smoke curl? Can the trail taper? Can the explosion spawn embers that themselves fall and fade? Each one is reasonable, and each one is another week bolted onto code nobody wan…

Rive: Animate Web UIs with State Machines Rive.app is an online tool that facilitates the creation of animations. What makes it special is that it uses state machines. I came across Rive.app a few months ago and I was seduced by its simplicity of use and the possibility to use state machines to describe animation steps. I usually use Lottie (an open-source player for Adobe After Effects animation…

Noor; Nimra; Bilal; Muhammad; Hussain; Abdullah; Baig; Hassan
4d ago

Computer Science > Graphics Title:Nova3D: Code-Native Generation of Programmable 3D Assets View PDF HTML (experimental) Abstract:Current 3D generative models mostly produce a final surface: a visually strong but largely opaque mesh. Interactive 3D worlds need more than a surface. They need named parts, an assembly hierarchy, measurable constraints, local edit handles, and joints for a…

Why Is Overdraw Particularly Important in WebGL? When optimizing a Unity WebGL application, developers often focus on polygon count, draw calls, texture size, and shader complexity. But there is another performance problem that can quietly become expensive: UI overdraw . A UI may look simple to the player while the GPU is actually rendering the same pixels several times. A typical game interface …

In the prequel, we introduced Neptune, a Direct3D protocol forwarding layer for VirtIO. Neptune allowed us to serialize Direct3D API calls across the hypervisor boundary and this allowed us to run Wine games on a Linux guest with a Linux host faster than with DXVK directly in the guest. Admittedly, the payoff there was not that exciting but it laid the groundwork for our real goal: modern graphic…

Change an SVG's color by editing fill and stroke , either as attributes or through CSS. Simple in theory. In practice there are three places a color can be declared in the same file, they follow the normal CSS cascade, and if you don't know that, "I changed the fill and nothing happened" turns into a twenty-minute debugging session. Here's the part of SVG color handling that usually doesn't get s…

If you've opened a <path d="..."> string and had no idea what you were looking at, here's the short version: it's a tiny drawing language. A pen moves around a coordinate space, and each letter in the string is an instruction telling it what to do next. TL;DR M / m moves the pen, L / l draws a straight line, C / c and Q / q draw bezier curves, A / a draws an arc, Z / z closes the shape. Uppercase…

Alexandre Lamure
18d ago

Stylized GGX shading — toon specular highlights To achieve a toon look in 3D rendering, the most common way is to threshold the lighting. It transforms the soft color gradients into flat colors. // The rendering equation becomes: float Threshold = 0.0; // any value between 0 and 1 vec3 Radiance = BRDF * LightIntensity * step(Threshold, dot(Normal, LightDirection)); However, one might want to mix …

Hi, this is Andrea. After playing a little bit with the torus program that hasn't fallen into the oblivion for now, I decided to render it using the Kitty Graphics Protocol that also my terminal supports. If you don't pay too much attention like me at first, you could think of sending raw pixel data encoded in plain ASCII. Well, no too easy hehe. You must send base64 encoded images (RGB, RGBA, PN…

Cracking Windows Open Porting RADV
24d ago

Louis-Francis Ratté-Boulianne July 28, 2026 Reading time: RADV is the open source Mesa Vulkan driver for AMD GPUs. Over the years, it has become a cornerstone of the Linux graphics stack. It has now effectively become the de facto Vulkan driver for AMD hardware on Linux. AMD even discontinued their PAL-based (Platform Abstraction Library) alternative in its favor, consolidating their open-source…

The first time you wire up a game controller in a browser, the API will almost certainly appear broken. You plug in an Xbox pad, call navigator.getGamepads() , and get back an array of four null values. Nothing is wrong. The API is just quieter and stranger than most browser APIs, and almost none of that strangeness is obvious from the method signature. This is a walkthrough of how the Gamepad AP…

WebGPU Unleashed: A Practical Tutorial Welcome to "WebGPU Unleashed" - your gateway to the dynamic world of graphics programming. This free book will teach you graphics programming in JavaScript using WebGPU, drawing from my own learning journey. Why did I write this book? Recently, a friend asked me what his child should learn to get started with graphics programming. A few years ago, OpenGL was…

research.ioresearch.io

Sign up to keep scrolling

Create your feed subscriptions, save articles, keep scrolling.

Already have an account?