Timon E.C.
timonec.bsky.social
Timon E.C.
@timonec.bsky.social
Physicist ⚛️ & Programmer 💻
Currently obsessed with ray tracing 💡
⚙️ Method: Ray tracing
🎥 1 sample per frame, 30 fps
⏱️ ~1–2 minutes render time / video
November 8, 2025 at 11:57 PM
🌍🌕 Switching perspectives to a geocentric scene with moon and stars in relative motion.

Don't get dizzy...
November 8, 2025 at 11:57 PM
How it's going. 🧊

#debugging
November 7, 2025 at 10:46 PM
⚙️ Making it faster
Path tracing gives the best result (check out e.g. the ceiling), but is super slow.
To optimize, I’m adding:
• Direct light sampling — directly sampling visible light sources to reduce wasted rays.
• Denoising — cleaning up noise so fewer samples are needed for a smooth result.
November 4, 2025 at 8:20 AM
🌌 Path Tracing Renderer
It simulates full global illumination: Light bounces multiple times, capturing indirect light and color bleeding.
The single-sample image is almost black, most rays never hit the lamp.
After ~15000 samples/pixel (≈3 hr), the scene is still noisy.
November 4, 2025 at 8:20 AM
🔦 Ray Tracing Renderer
Introduces stochastic light sampling for reflections, refractions, and light sources.

The first image shows a single sample per pixel (noisy but fast). The second is the converged result after 2500 samples.

I have to figure out what causes the few "hot pixels"...
November 4, 2025 at 8:20 AM
💡 Deterministic Renderer
Adds physically based light interactions: direct light (and therefore shadows), reflections, and refractions are handled explicitly.

No randomness — everything is computed deterministically for stable, noise-free results.
November 4, 2025 at 8:20 AM
🎨 Simple Renderer
This one ignores all light transport — it just shows the raw base colors of materials.
It’s useful for debugging geometry, textures, and UV mapping before diving into lighting.
November 4, 2025 at 8:20 AM
Performance-wise, it is not so great.

While having already parallelized my code, rendering each of these images still takes around 7-8 minutes, i.e. 0.002 fps. :(

My next goal is to speed up my renderer significantly. I already have two promising ideas. Let's see.
October 16, 2025 at 9:20 PM
With this new material module, I will be able to simulate a bunch of interesting scenes and render lots of images.

But first, I might increase the fidelity of my generated images by simulating the Fresnel effect. But more on that next time.
October 16, 2025 at 9:20 PM
Finally, through all these properties that I can adjust, I can try to model metallic surfaces.

Here, I tried to simulate a bronze, silver, and golden sphere.
October 16, 2025 at 9:20 PM
Just like for reflections, the glass might have a rough structure which adds a bit more randomness to the refractive interaction.

You get a more "milky" glass.
October 16, 2025 at 9:20 PM
Moving on to transparent materials and glass spheres. We can simulate refraction by increasing the refractive index of the spheres and using Snell's law.

Check out the light patterns on the floor.
October 16, 2025 at 9:20 PM
Reflections are not always perfect. Mirroring surfaces might not be smooth. We can increase the surfaces roughness and see what happens to the reflected light.
October 16, 2025 at 9:20 PM
Indeed, we can smoothly increase the reflectance of an object from completely matte to reflective like a mirror.
October 16, 2025 at 9:20 PM
We can take the same colored balls and add a bit of reflectance, to get a more shiny surface.

In this image, 5% of the incoming light gets reflected by the spheres, whereas 95% bounces off randomly.
October 16, 2025 at 9:20 PM
As a first interaction, we have diffuse scatterings, where light gets scattered into a random direction.

In this interaction it also picks up the base color (albedo) of that object.
October 16, 2025 at 9:20 PM