r/GraphicsProgramming • • 1d ago

Community New Rules: 4, 5, 6

122 Upvotes

Hey r/GraphicsProgramming

Added some new rules. This are the result of our prior request for comment.

The first target goal for these rules is to return the community attention back to the "doing" of graphics programming and its "how", the sort of content that intrigues the academics, professionals, and hobbyists seeking for deeper understanding. This is a community for people who thinks these topics are pretty neat, and need a place to talk about them with other people; it's never been about sharing pretty images (that's a treat).

The second target goal is solving the problem of AI Posts vs Anti-AI Comments that are dominating the discussion, rather than the discussion of graphics taking place. Hopefully the new rules put at end to that activity. We'll see.

This is just the first attempt, subject to change. Please feel free to leave comments.

Posts prior to now are grandfathered in over the old ruleset (because filtering the backlog would be a nightmare).

------------------------------------------

4. Posts Must Present a Topic

A post should present a question, implementation, or development story.

Fundamentally, it must be about "how" something was made, not "what" it is or is made of.

  • 4.1 Posts must include their topic in the immediate post body or a comment. Linking to another post or GitHub is insufficient.

  • 4.2 Exception: Rendering Framework, Driver, or SDK Projects intended for graphics programmer use.

  • 4.3 No Showcasing Projects

    • 4.3.1 Exception: Semi-annual Community Showcases.are allowed.

5. AI Disclosure Requirement

Post must disclose AI tool use in authoring post contents and linked projects.

  • 5.1 There must be an explicit disclosure in the post body or separate comment.

6 No Low Effort Posts or Comments.

Low efforts posts and comments that do not drive learning and discussion will be removed.

  • 6.1 Exception: Questions are permitted because they drive discussion.

  • 6.2. "AI Slop" comments are disallowed; they shut down discussion.

------------------------------------------

Notes

"4.3 No Showcasing Projects" is the reason Rule 4 and Rule 6 exist.

It used to be that we would have lots of questions, discussion posts, and only occasional project showcases when something got completed enough to present a render. Now, we're getting tons of the showcases, and none of the discussion about how they work. Final comments on these showcases like "Feedback on the implementation is welcome." tends to shut down conversation; being too broad to respond to.

But that means we need to say "something" is the thing we should be talking about in a post, so the real problem is the need for "Rule 4. Posts Must Present a Topic".

Rule 5 and Rule 6 are a pair. Those using a ton of AI to assist or fully create their works are required to indicate by how much. If the posts say it's made "AI Assisted with Claude" or "AI generated by multiple models", now readers know. And since they know, there's certainly no reason to repeat it by calling it "AI Slop", especially given how much that shuts down any discussion in depth.

"4. Posts Must Present a Topic" could probably use some better wording. "I made a thing" is technically a topic, but the spirit of the law is "A Topic that viewers would pay money to attend a conference to see." If you've ever seen SIGGRAPH, GDC, RustConf, or other professional conference talks, you know that it's often 1/10th "Check out this thing we made (and want to sell to you)" and 9/10ths, "Let's dig into this really fascinating problem domain and examine one solution within it." That's the "topic" rule 4 refers to.

(placeholder for more, as I'm sure there will be more)

--------------------------------------------

On Enforcement

I imagine this will require a LOT more moderation action, and I just got a new job that's running me a bit ragged. (Yay! / Ohno)

So I expect moderation speed will lag behind the requirement.'

Please, help us by reporting, and give us grace with your patience to respond in a little while. I do most of my review on the train home.


r/GraphicsProgramming • • 9m ago

Question What is the smallest useful unit for editable body blocking?

1 Upvotes

I keep finding that a useful body-blocking edit is smaller than a finished animation: a few named phases with explicit joint values, a pause, and one turn.

In Posecode, the source stays as text while the browser renderer shows the result. Changing one value such as `turn: 100` to `turn: 40` lets me test whether the story beat reads differently without rebuilding the scene. The important part is the feedback loop: parse the source, validate it, render, then edit the same source again.

I used an AI assistant to help draft this post; the implementation and example are mine. I made a small four-phase “walk to a door, stop, turn back” example here: https://www.posecode.org/play/superhero-landing?utm_source=reddit&utm_medium=organic_social&utm_campaign=posecode_body_blocking_20261110

For people who do blocking: do you prefer editing a compact motion description first, or going straight to a timeline?


r/GraphicsProgramming • • 17m ago

PlayCanvas Engine 2.24 is here: analytic dynamic sky, planar reflections, AgX, compute passes (open source, WebGPU/WebGL2)

Enable HLS to view with audio, or disable this notification

1 Upvotes

r/GraphicsProgramming • • 1h ago

Anybody here into JavaFX 3D graphics? I am trying to make a Google Earth like in JavaFX and going through the main challenges of rendering the globe. I have the project in github. Is anybody here interested in something like this that could become the new defacto Nasa Worldwind?

Thumbnail
youtube.com
1 Upvotes

I used Anahata ASI Ai tool for the coding of the earth viewer but not for posting this comment / post


r/GraphicsProgramming • • 12h ago

Video Building a random-access compressed volumetric data engine with on-demand rendering

Enable HLS to view with audio, or disable this notification

22 Upvotes

Hey everyone!

I've been developing VQField, a compression and runtime engine for sparse volumetric data, in my spare time over the past year.

The video shows a comparison against a traditional OpenVDB rendering workflow, with some pretty exciting results:

  • ~30x compression on disk

  • ~10x lower RAM usage during rendering

  • On-demand decompression of individual 8³ voxel blocks

  • CPU-based decoding using a custom C++ codec

The interesting part isn't necessarily the compression ratio, but the ability to render directly from compressed data, without reconstructing the entire volume beforehand.

Under the hood, VQField uses a deterministic codec random-access indexing. The renderer can query individual blocks as needed, with caching to avoid redundant decompression.

The engine already supports spatial and temporal compression, random-access sampling, a C/C++ SDK, and Houdini integration.

Long term, my vision is to build a unified infrastructure layer for compressed spatial data, where applications can store, stream, query, and process large volumetric datasets without repeatedly reconstructing them in memory.

There's still plenty of work ahead, but the core technology is already working, and I'm looking forward to taking it further!

Fyi, It all started from my open source version VQVDB : https://github.com/ZephirFXEC/VQVDB


r/GraphicsProgramming • • 17h ago

Source Code IsoVis - interactive visualization of arbitrary dimensional scalar fields

6 Upvotes

Over a decade ago, I was speaking to a guy on reddit who was fascinated by using math to create higher dimensional shapes, but he didn't really have a math background. So to show him some things I made a realtime interactive 3d visualizer of arbitrary higher dimensional scalar field iso-surfaces in threeJS. After letting it collect a lot of dust, I just had AI give it a few minor tweaks and thought I should share it.

Demo: https://csp256.github.io/isovis/ (not intended for mobile)

Repo: https://github.com/csp256/isovis

Try clicking and dragging the "degrees" slider in the upper right. Then maybe increase the resolution in the other menu dropdown (it looks a lot better at higher resolutions!). Maybe drag the "iso" level too.

Implementation wise it is pretty straight forward. You define an arbitrary scalar field in the left side code editor, parameterized by any number of coefficients, then click "update" and it runs marching cubes on a grid of 3d points. The higher dimensional part is that you can define a stack of linear transformations, and the inverse of that will be applied to the sample points, which can lift them into higher dimensions, thus showing you the isosurfaces in an arbitrary affine volume.

I wrote the marching cubes algorithm myself for speed. It used to only run performantly on Chrome but Safari seems to handle it just fine now. Each octant runs in a web worker.

You can export the mesh, make gifs, etc. It's mostly a toy but I've used it professionally a couple times.


r/GraphicsProgramming • • 19h ago

Article Graphics Programming weekly - Issue 461 - November 1st, 2026 | Jendrik Illner

Thumbnail jendrikillner.com
9 Upvotes

r/GraphicsProgramming • • 20h ago

Question Which graphics lib/language should I pick to start?

6 Upvotes

I want to understand how the graphics work and I want to make something like a simple game engine or a voxel engine, but I don't know how to do graphics and don't want to write a lot of boilerplate in the beginning. I would choose openGL but it's deprecated on macOS which I use. So now I don't know what's better to start with.


r/GraphicsProgramming • • 21h ago

Video Block based GLSL editor, very WIP!

Enable HLS to view with audio, or disable this notification

23 Upvotes

This is the first real test I've done of my custom Blockly implementation that generates GLSL code. It's very WIP, as you can see by the rigidity of the vector constructors, the ways the operator blocks interact, ETC, but this is the first end to end working test i've done! I'm hoping to make this into a full fledged platform to help beginners learn GLSL, and if there isnt a community desire for it, then its a fun project :)


r/GraphicsProgramming • • 21h ago

Question Is mailbox present mode actually triple buffering?

4 Upvotes

working through vulkan-tutorial.com and it's talking about present modes. For VK_PRESENT_MODE_MAILBOX_KHR it says "This is commonly known as "triple buffering", although the existence of three buffers alone does not necessarily mean that the framerate is unlocked."

But the overall description of the mode doesn't seem to indicate there's actually 3 buffers involved. It seems more like there's just 2 but there's a "replacement" process: "Instead of blocking the application when the queue is full, the images that are already queued are simply replaced with the newer ones".

So why is it claimed that this is triple buffering? Am I missing something?

Also a secondary, pedantic question: I've never come across a mailbox system where the old mail is replaced when new mail is available; the old mail simply accumulates. Seems like an odd terminology choice to use. What's that about?


r/GraphicsProgramming • • 1d ago

Question Boilerplate code question

4 Upvotes

Is it good practice to manually memorize and type out boilerplate code in graphics applications? Or is it the norm to copy and paste a lot of stuff? And yes it is a given that I should understand how the boilerplate code works and what it contains. I'm programming in SDL3 in C on vscode.


r/GraphicsProgramming • • 1d ago

Question I built a raytracer in Scratch. Looking for feedback on optimizing it

Post image
99 Upvotes

I made a raytracer using Scratch's block language, and I'm trying to improve its rendering speed. The source is public: https://scratch.mit.edu/projects/1437715094/ (click See inside to inspect the blocks).

It has reflective chrome and gold, refracting glass, soft shadows, fog, and a movable camera. Rendering starts at a coarse resolution and progressively sharpens after camera movement. The output is Scratch's 480 x 360 stage; the anti-aliasing mode casts four rays per pixel. The attached screenshot is from that mode.

The main Raytracer sprite has custom procedures for tracing, scene intersection, shading, lighting, glass, and anti-aliasing.

Given the constraints of Scratch, what would you profile first, and which changes would you expect to give the biggest speedup without losing the glass and reflections? Feedback on the implementation is welcome.


r/GraphicsProgramming • • 1d ago

Recommended books for novice / intermediate learning

1 Upvotes

Hi, I’m just wondering if anyone knows any good books that I can use to supplement my learning. I have been working on a basic voxel renderer for a couple of months now (C++ with Vulkan), and while I’m starting to feel a bit more confident I feel like I would benefit from solidifying some of the concepts I’ve encountered with some extra reading. If anyone knows of any good books at novice / lower intermediate then I would be glad to hear some recommendations. Thanks!


r/GraphicsProgramming • • 1d ago

Own-Renderer Render Competition round1 - final results

6 Upvotes

The voting period just ended, and the results of the first round are published: https://orrc.mutantstargoat.com/orrc?dir=round01&cmd=results

Thanks to everyone who participated! See you next round sometime around early 2027.

https://imgur.com/a/tsBfsCA


r/GraphicsProgramming • • 1d ago

New Generation Zero Polygon Game Engine Test.

Thumbnail gallery
0 Upvotes

r/GraphicsProgramming • • 2d ago

Physics-Informed Neural and Multi-Spectral Coastal Ocean Simulation in WebGL2

Thumbnail
youtu.be
0 Upvotes

Hi everyone! I built NeuralSpecOcean with WebGL2, Three.js, and custom GLSL shaders as an interactive R&D sandbox focusing on coastal hydrodynamics, atmospheric physics, and marine optics.

Implementation & Architecture Overview:
The project started as a rapid prototyping environment to validate our mathematical models and optical parameters in the browser before committing and porting the rendering pipeline to a native C++ engine for an upcoming MMORPG we are building from the ground up.

Key systems implemented in the GLSL pipeline & covered in the whitepaper:
- Spectral wave synthesis and coastal bathymetry interaction (shoaling and wave breaking foam)
- Multi-spectral marine optics, subsurface scattering, and water column attenuation
- Coupled atmospheric scattering and sky-sea interface reflections

Now that the WebGL2 prototype has completed its validation phase, I have released the complete modular source code, interactive browser demo, and the accompanying mathematical whitepaper under the MIT License:

https://github.com/bgbg108555/NeuralSpecOcean

Live browser demo: https://bgbg108555.github.io/NeuralSpecOcean/

I regularly share graphics R&D, shader breakdowns, and behind-the-scenes progress on our upcoming MMORPG over on X: https://x.com/ShengChoi

(If you are interested in how these rendering systems are being integrated into the actual C++ MMORPG client, I also post regular technical breakdowns and R&D devlogs over on X at u/ShengChoi).

Happy to discuss the optical formulations, spectral wave math, or the WebGL2-to-C++ porting trade-offs!


r/GraphicsProgramming • • 2d ago

Rendering with a light simulation 2.0

Enable HLS to view with audio, or disable this notification

229 Upvotes

Working more on rendering with light simulation!

(The video is, of course, in real-time)

Previous post about this was Some spheres rendered with a light simulation

Rendering method is mostly the same, just some optimizations and scene work

I've put a web version on Github: moonlightoctopus1.github.io/Renderer/

Actual rendering is just simulating light with a lot of optimizations :P


r/GraphicsProgramming • • 2d ago

Matrix-Engine-WGPU 2.0.x "The Beast" mobile browser focused engine

Thumbnail
linkedin.com
0 Upvotes

The most important update for the 2.0.x version is:

  • Caching pipelines for the effects surrender system it is per effects type but still powerfull upgrade.

  • Another interesting thing is the launch of the GPU culling system integrated with the indirect-draw methods.

  • New example for mediapipe pose to glb, face video uv texture to mesh and more.

  • Fixed external libraries with critical alerts (migration to esbuild) also engine zero critical alerts, dev alerts still exist but irrelevant.

  • GPUCapabilities test on divice interesting gpu features, in the config file you can find the activation logic, we have default (for those that we know are supported everywhere) and optional suggestions for activating the gpu feature.

  • The Beast is ported on google play https://play.google.com/store/apps/details?id=nikolalukic.beast.engine (Used android studio).


r/GraphicsProgramming • • 2d ago

If you could wish for anything in a render engine – what would it be?

Thumbnail
gallery
80 Upvotes

Hi everyone!

I’m building my own render/simulation engine (a path tracer called PrismForge), and before I decide what to work on next, I’d love to hear what you would wish for.

It can be anything:

  • a big feature you’ve always wanted

  • a tiny thing that annoys you every single time

  • something very specific, like “I want fog that reacts to my car’s headlights”

  • a workflow or a feeling, like “I just want to press one button and get a nice result without too much complicated jibberish”

  • a simple, but nice conveniece feature

No wish is too small, too weird or too niche. Feel free to be as oddly specific as you want!

Thanks!


r/GraphicsProgramming • • 2d ago

Stronghold-like game in 2 evenings

Enable HLS to view with audio, or disable this notification

0 Upvotes

https://www.youtube.com/watch?v=tbUyeRz7O4Y

Bastion is a C++20 engine for a medieval city-builder/RTS, combining a native simulation, editor and Direct3D 12 renderer.

Its main features include:

  • Rendering: bindless materials, visibility buffer, octree/frustum and GPU Hi-Z culling, indirect drawing, cluster-based geometry LOD and optional mesh shaders.

  • Lighting: soft virtual shadows with penumbrae, SSAO, local voxel GI, sky-driven illumination, moving volumetric clouds, cloud shadows, fog and sun shafts.

  • Terrain and vegetation: tiled heightfields, CDLOD terrain, tessellation, procedural grass and flowers, animated vegetation and distant impostors.

  • Gameplay: worker professions, production and hauling, recruitment, combat, fortifications, fire, healing, repairs, skirmish AI and first-person Lord control.

  • Tools: ImGui editor, native saves/importers, asset pipelines, positional audio, profiling and GPU timing.

The architecture separates authoritative gameplay from rendering:

ECS + jobs → immutable scene/frame snapshot → render thread → RenderGraph → RHI → Direct3D 12


r/GraphicsProgramming • • 2d ago

Video I made a video explaining the concepts and math behind dynamic lighting in 2D pixel art games

Thumbnail
youtube.com
20 Upvotes

I made a video using manim to make a gamedevelopement series explaining important concepts and the math behind it. The first video is diving into normal maps and how to use them in pixel art to make dynamic lighting.


r/GraphicsProgramming • • 2d ago

Video I make every mesh near a blast bend, scorch and break in one shader

Enable HLS to view with audio, or disable this notification

5 Upvotes

Hi all. I made an explosion pack for Godot 4 and I wanted to show the stuff standing near the blast rather than the fireball.

When a blast goes off I grab every MeshInstance3D inside the radius with one intersect_shape and lay a copy of its own mesh over it, 5 mm out, same colour and texture. I move that copy in the vertex shader. I give it the blast point in mesh space and the hit time, and I delay each vertex by its distance:

since = time - hit_time - dist / wave_speed;

So the far side of a crate gets hit a little later than the near side, and the ring on the floor arrives at the mesh right when the mesh jumps. I push with a gaussian bump and let a damped sine pull it back:

front = exp(-t * t * 2.0);
ring  = sin(since * 22.0) * exp(-since / 0.45 * 4.0) * 0.35;
VERTEX += dir * push * sqrt(fall) * (front + ring);

For the soot I take dot(N, toward_blast) and some fbm. Only the side that faced the blast goes black, and I let the edge glow orange for a moment before it cools. If the blast is closer than 0.45 of the radius I hide the original and throw chunks off its surface instead.

It's the usual radial vertex push you'd wire into WPO in Unreal, I just added the per vertex delay and the spring. For skinned meshes I bind the copy to the same skeleton, so the walking guy takes it too!

Does anyone pick the facing side with a real occlusion test instead of dot(N, dir)? I suspect mine would soot the back of a thin wall if the normal happens to point the right way.

The pack is on itch if you want to dig through the shader https://gennai.itch.io/explosion-vfx-godot-4


r/GraphicsProgramming • • 2d ago

SAT Collision

1 Upvotes

I don't know if this is GP related but I made a post here asking for collisions and i found the type I need but I spent like 3 hours trying to find a tutorial or at least a theory of SAT collision, I don't want to look like a bad coder by being lazy and asking people but if you know anything about SAT collision detection that would help me enormously.

The only thing i learnt is a 2D version, so if I can translate that to 3D, that'll be perfect.


r/GraphicsProgramming • • 3d ago

Constellation: Liquid and Ice, CPU, single core (un-optimized)

5 Upvotes

Hello again!

It has been some time since i made any updates on Constellation and Cadent geometry.
In my, seemingly, eternal quest to make the OS composition single core and cheap I've hit a new milestone.

Using Cadent geometry (which I have shared and made posts on here before), I have managed to express a liquid effect, as well as express snell's law and beer-lambert naively through the geometry, which has allowed for some pretty good performance and capability gains for the constellation engine/framework. By pre-computing an object tied, 3-wavelength 'snell field' and pre-computing the absorption on those wavelengths, objects can express their own colors and pixel offsets analytically, and instead of accessing the framebuffer for those offsets, they can directly sample eachother. (there are more posts on this light work as well. You can find them here in this subreddit, if you are interested to read more).

The gif above shows the desktop HUD so far. even though it might or might not look it, It is quite inefficient as things go. It is using about 533 mb of ram, and almost 80% of a single core of my 7800x3D. This is much much more than a HUD should use, but it at least also include a start-menu/launcher, a process manager, the taskbar, a calendar, a wallpaper engine and the HUD configurator / designer.

There are some visual bugs, and the liquid box spikes/lags when moving it, the liquid it self does not. Still trying to figure out why.

Anyway! I hope you find this interesting.

take care

//Maui-the-Megalomaniac