Houdini
VEX
Simulation
Houdini Flocking System Sistema de Flocking en Houdini
Procedural flocking simulation with custom VEX behaviors.
Simulación procedural de flocking con comportamientos VEX personalizados.
flocking_v012.mp4
The Architecture
La Arquitectura
This project implements a procedural flocking (boids) system entirely inside Houdini using VEX point wrangle nodes.
The system simulates three core boid behaviors — separation, alignment, and cohesion — running on every point per frame inside a Solver SOP. Each behavior is implemented as a standalone VEX snippet, making it easy to tune individual weights or add custom rules.
A key challenge was maintaining performance with thousands of agents. The solver caches neighbor lookups per iteration and uses the `neighbours()` function with a spatially-limited search radius to keep VEX execution under 5ms per frame.
Custom behaviors include: predator avoidance, boundary containment with soft force fields, and speed-matching to target velocity.
The system simulates three core boid behaviors — separation, alignment, and cohesion — running on every point per frame inside a Solver SOP. Each behavior is implemented as a standalone VEX snippet, making it easy to tune individual weights or add custom rules.
A key challenge was maintaining performance with thousands of agents. The solver caches neighbor lookups per iteration and uses the `neighbours()` function with a spatially-limited search radius to keep VEX execution under 5ms per frame.
Custom behaviors include: predator avoidance, boundary containment with soft force fields, and speed-matching to target velocity.
Este proyecto implementa un sistema procedural de flocking (boids) completamente dentro de Houdini usando VEX point wrangles.
El sistema simula los tres comportamientos básicos de boids — separación, alineación y cohesión — ejecutándose por punto en cada frame dentro de un Solver SOP. Cada comportamiento está implementado como un snippet VEX independiente, facilitando el ajuste de pesos individuales o agregar reglas personalizadas.
Un desafío clave fue mantener el rendimiento con miles de agentes. El solver cachea las búsquedas de vecinos por iteración y usa la función `neighbours()` con un radio de búsqueda limitado espacialmente para mantener la ejecución VEX por debajo de 5ms por frame.
Comportamientos personalizados incluyen: evasión de depredadores, contención en bordes con campos de fuerza suaves, y ajuste de velocidad hacia una velocidad objetivo.
El sistema simula los tres comportamientos básicos de boids — separación, alineación y cohesión — ejecutándose por punto en cada frame dentro de un Solver SOP. Cada comportamiento está implementado como un snippet VEX independiente, facilitando el ajuste de pesos individuales o agregar reglas personalizadas.
Un desafío clave fue mantener el rendimiento con miles de agentes. El solver cachea las búsquedas de vecinos por iteración y usa la función `neighbours()` con un radio de búsqueda limitado espacialmente para mantener la ejecución VEX por debajo de 5ms por frame.
Comportamientos personalizados incluyen: evasión de depredadores, contención en bordes con campos de fuerza suaves, y ajuste de velocidad hacia una velocidad objetivo.