Yunus Balcioglu

animatrix_

About Me

Senior FX Technical Director @ Industrial Light & Magic | Feature film credits include The Lord of the Rings: The Rings of Power, Marvel's Eternals, Star Wars: The Rise of Skywalker, X-Men: Dark Phoenix, X-Men: Apocalypse, Aquaman, Alien: Covenant, Pirates of the Caribbean, Justice League and many m...  more
EXPERTISE
Technical Director
INDUSTRY
Film/TV

Connect

LOCATION
Singapore, Singapore

Houdini Skills

ADVANCED
Procedural Modeling  | Digital Assets  | Mantra  | Pyro FX  | Fluids  | Destruction FX  | VEX  | Python
INTERMEDIATE
Realtime FX

Availability

Not Specified

My Tutorials

obj-image Advanced
Pragmatic VEX: Volume 1

My Talks

obj-image HIVE
Adaptive Fracture Synthesis and Propagation in VEX
obj-image HIVE
Face Peeling Using KineFX
obj-image HUG
Retiming Ocean Spectra & The Pragmatic Approach to Solving Technical Problems in VFX

Recent Forum Posts

Pragmatic VEX: Volume 1 [4K] [H20] Aug. 10, 2026, 2:05 a.m.



Following up on my previous Swirl COP filtering tests, this update focuses on the deformation model itself: how multiple overlapping swirls are combined.

I'll be sharing the OpenCL code and Houdini nodes for this implementation on Patreon soon: https://www.patreon.com/c/animatrix [www.patreon.com]
The Houdini 22 implementation processes its point-driven swirl maps sequentially. Each map receives the position produced by the previous map, giving an ordered composition:
p_out = F_n    F_1(p)

Because nonlinear maps do not generally commute, changing the point order can change the resulting deformation.

The custom implementation instead constructs a stationary velocity field by summing the contribution from every swirl at the same current position:
v(x) = Σ v_i(x)

The output position is the time-one flow of that combined field, obtained by solving:
dx/dt = v(x)

All swirl contributions therefore interact during integration rather than being applied as completed transforms one after another. Reordering the swirl points does not change the mathematical field, apart from floating-point accumulation differences.
The flow is solved primarily with adaptive Dormand–Prince 5(4), using an embedded error estimate to control the integration step size. Fixed-step RK4 remains available as a reference and as an explicitly reported recovery path if the adaptive step budget is exhausted.

Each swirl contribution uses a compact C2 quintic support falloff, while the center singularity is regularized relative to the swirl radius. These choices keep the combined field smooth across influence boundaries and independent of output resolution.
This is an implementation comparison rather than a strict one-variable A/B: the stock node uses sequential map composition, while the custom node integrates the flow of a superposed velocity field.

Pragmatic VEX: Volume 1 [4K] [H20] July 28, 2026, 2:34 p.m.

Following up on my earlier COP filtering work, I added another high-quality method to OSSI (Output-Space Subpixel Integration) and compared it with the updated Houdini 22 Swirl COP.

H22 is a substantial improvement over H21 in terms of smoothing the swirl lines, but the central singular region is still visibly unstable and poorly resolved. Some broader curved regions also become noticeably softened. This is consistent with Box filtering over a rectangular area footprint estimated from finite differences of the warp, whereas OSSI integrates how the nonlinear deformation varies across the output pixel.

The new method uses adaptive antithetic Owen-scrambled Sobol sampling. Sobol provides low-discrepancy progressive coverage, Owen scrambling changes the sequence per pixel to reduce visible sampling structure, and pairing each offset with its opposite keeps every completed pair exactly centered.

Like my existing Adaptive R2 method, the sample count and integration width respond to the estimated warp difficulty. Adaptive R2 uses a lightweight progressive R2 disk sequence with a hashed per-pixel rotation, while the Owen-Sobol method uses pixel-specific scrambling of the Sobol sequence together with antithetic sample pairs.

The sample budget and integration width are driven by a conservative finite-difference Jacobian envelope and a footprint-scale second-order nonlinearity estimate. Power-of-two pair budgets evaluate the Sobol sequence at its strongest stratification points as sampling increases.

This is a comparison of the complete stock and custom implementations, not an isolated Box-versus-Sobol test, since their center regularization and footprint-planning strategies also differ.





Houdini 22 Sneak Peek June 22, 2026, 2:58 p.m.

Finally I can retire my python module that does this for a decade