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

New here to Houdini 3D ^^ March 5, 2026, 2:42 a.m.

Hi,

This forum is definitely the best place for Houdini

Mardini 2026 Feb. 27, 2026, 2:06 a.m.

Procedurally generate a sine wave in a chramp? Feb. 24, 2026, 3:13 a.m.

Hi,

You can easily do this using Python:

import math

node = hou.pwd()
parm_path = node.evalParm("parm_ref")
parm = hou.parm(parm_path)
if parm is None:
    raise hou.NodeError("Bad parm path in parm_ref: " + parm_path)

N = 32
cycles = 1.0
phase = 0.0
amp = 0.5
offset = 0.5
decay = 0.0

keys = [i / (N - 1) for i in range(N)]
vals = []
for t in keys:
    y = math.sin(2.0 * math.pi * cycles * t + phase)
    y *= math.exp(-decay * t)
    vals.append(offset + amp * y)

basis = [hou.rampBasis.CatmullRom] * (N - 1)

r = hou.Ramp(basis, keys, vals)

parm.set(r)