Maximilian Tarpini
banner
maxtarpini.bsky.social
Maximilian Tarpini
@maxtarpini.bsky.social
It's all about W÷m² and W÷Kg 🌈🚴‍♂️
www.rombo.tools
Ending some Pattern dev with Truchet patterns. Worth noting that while the original Truchet tiles (1704) used diagonally split squares, the curved arc-based Truchet patterns commonly used in modern graphics were popularized by Cyril Stanley Smith in 1987 !
December 18, 2025 at 9:58 PM
Templated C++ hash gen splitmix64-based.
For any kind of input get any kind of output :

float a = rmb_hash (make_float2(12.f, 7.f));
int3 b = rmb_hash (make_int2(5, 9));
int2 c = rmb_hash (float(1.5f));

github.com/RomboDev/Mis...
github.com
December 14, 2025 at 5:06 PM
Never ever use hashes you find around .. and for this matter .. don't roll your own hash functions either .. refer to your quality dealer eventually :) or to SplitMix64-based hashes.

Here with some commenting about.
December 8, 2025 at 8:34 PM
Orbit traps are a coloring strategy for fractals: follow an orbit, watch how it moves through space and record how close it gets to some geometric “trap”. That “closeness” drives your colors.

These are based on : "Procedural Generation of Artistic Patterns Using a Modified Orbit Trap Method".
December 5, 2025 at 9:41 PM
Patterns from : ' Mathematical Modeling of a Class of Symmetrical Islamic Design'.

Proper coloring is almost impossible because stars in a periodic tiling where cell boundaries wrap destroy the pattern topology .. ie. a ray can hit edges that are topologically behind the starting point ! 🤔
November 18, 2025 at 8:23 PM
Implemented : Symmetrization of Quasi-Regular Patterns with Periodic Tilting of Regular Polygons (using UV cells). Super nice, infinite pattern variations with just few parameters. Added colorization that with threshold parameters adds other ways to create more patterns.
November 14, 2025 at 8:26 PM
Working with floats in C/C++? Fncs like fmod(), fmin(), fabs() etc. actually use doubles internally (floats get promoted on call). For better performance with float data, use the 'f' suffix versions: sinf(), sqrtf() are obvious, fmodf(), fminf() less so. Easy to overlook, but matters in tight loops!
October 23, 2025 at 8:44 PM
Paint By Numbers: Abstract Image Representations
t.co/nPXURJpFUB
July 21, 2025 at 6:11 PM
Finally had some luck implementing rt multiscale glints (zirr/kaplaian2018) offline ! Snow uses delta-Eddington phase fnc.
July 9, 2025 at 6:31 PM
Solid angle sampling : uniformly perturb a base vector within its solid angle cone.

github.com/RomboDev/Mis...
July 9, 2025 at 2:07 PM
Defocus 2.5D blur with circle of confusion computation from Z-depth based on 'A lens and aperture camera model for synthetic image generation - ACM Siggraph 1981' is super nice and works a treat in many situations.
May 9, 2025 at 8:34 PM
Importance sampled sky mapping.
March 14, 2025 at 9:31 PM
Phased moon 3D directional blur.
March 7, 2025 at 10:22 PM
Btw, we locate sun in the sky by checking ray dir alignment with sun center (cosTheta>sunCosTheta) .. so we don't generally consider sun size. However, sin() of sun angular diameter is sun radius (!) and we can use that at horizon to account for sun having a real diameter ie. for twilight zone etc.
March 1, 2025 at 5:16 PM
Modular approach to sky modeling 🔭🚀🌙
February 23, 2025 at 9:03 PM
If you want to be physically correct instead to use ie. a smoothstep fnc to fade out for example stars at horizon you can use this analytical approximation to the atmospheric extinction coefficent :
December 30, 2024 at 8:43 PM
Ever noticed that most phase fncs use costheta and not theta ? After all we want an angular quantity not a proj of some sort (taking the cos of the angle) while is not even a math convenience.. it is that costheta provides a more uniform sampling for calcs of ang distributions. Here the proof :
December 26, 2024 at 5:29 PM
The localPoint in the previous code is also the hit normal so I had just to add bump mapping, a dot product (moonnormal,sundir) for diffuse wrapped in a ^0.75 to compress the shadow terminator and eventually a bit of ambient (+albedo*0.075).. and voilà a basic moon with tidal locking.
December 14, 2024 at 9:28 PM
Simulate moon tidal locking by actually locking UVs to the view direction 🌙⛓️
December 13, 2024 at 9:26 PM
I'm keeping updated this super comprehensive collection of papers (by tech and by year), from the Kajiya eq to latest differential and neural approaches, passing by RRT and MC theories | As before, repost if you think it may be useful to others.

drive.google.com/drive/folder...
November 21, 2024 at 9:38 PM
Stochastic raymarching with enhanced sphere tracing.
November 18, 2024 at 5:50 PM
Random walks mechanics : a nice improvement to sample SSS with guided (zero-variance) walks is to use Meng closest point and normal heuristics and then D'Eon forward/backward probability to stochastically account for the boundary choice.
November 18, 2024 at 1:58 PM
Non-Exponential Random Walks.
For SSS they are great to sim plastics and other polymers, the discoloration and drying of certain natural materials or because of their long-range correlations thin-walled mats like the Mario on the left (same MFP of the 'solid' one on the right).
November 18, 2024 at 1:52 PM
Inverting IOR interfaces while random walking back toward the surface, pretending there's been a boundary between the isotropic opaque core and the transp aniso stuff.
Great for some resins, crusts etc.
November 18, 2024 at 1:50 PM
Modelling skin with Mie and Rayleigh scattering.
November 18, 2024 at 1:47 PM