Houdini Chess Solver + Simulations
Below are a series of animations that I created using Houdini revolving around a chess solver that I created using Python nodes and VEX. I originally had the idea of creating a project in Houdini to show the infinite number of variations of chess games that could be played, but over my time working on these projects I have spun the idea in many different fun ways. This page is a breakdown of several of the shots that I worked on as well as explanations of how I accomplished this.
Giant Chess Over Ocean - Most Recent Iteration
I wanted to lead with the most current version of this project in order to help show my path towards making it. At this moment, my most recent shot is one of two giant chess pieces over an ocean. I have been using chess pieces as relics of scale in part for my thesis, and in this video I created 100 meter tall chess pieces that are fighting over an ocean. I had a great time creating this, and although I hope to resimulate a few parts of this soon involving RBD fractures, I am fairly happy with what I’ve created.
The water was created using a guided ocean layer of a FLIP tank in Houdini. I had a great deal of difficulty getting proper behavior out of giant chess pieces moving through an ocean tank, as a thin band of particles was not sufficient in accommodating these shapes that were not hydrodynamic. The guided tank moves over time to the most important regions for the simulation, which follows the king piece. There were plenty of large splashes in the simulation from both the pieces and debris, and I added whitewater in order to make the effect look larger. The white water sources were carefully masked to include only the necessary regions and avoid any spray from other further waves.
The Basic Chess Board
This project started on a single board, with creating Python nodes that would allow me to play a random chess game. I placed this on a simple board that I created and let the games play out. I created a solver that would take in points with several attributes denoting their position on the board as well as what type of piece they are and in turn how they would move. After a while, I added increased probability of certain pieces moving as well as an increased probability of taking pieces in order to make the games look more “natural”. These are not professional chess games, so they may look slightly strange to those that do not play chess but nevertheless this was a fun experiment. I wanted to animate this board without any keyframes, so series of points are animated from a solver and then retimed in order to get gradual movements across the board. This was the “base” form of my chess solver, and from this point I had a lot of fun experimenting with different ways that I could show a chess game to make it more interesting.
This was one of the first projects that I created on my own in Houdini. This was one of the first times that I really broke off of following tutorials and so I needed to find a direction to take this project. I initially took this project in two separate directions, one with making the board larger and one with making the pieces movement more interesting.
“Infinite” Chess Board -> Scale
Chess is played on an 8 by 8 board, but what if it was bigger? I experimented with showing multiple chessboards as seen above but also decided to write out my maximum and minimum row and column restrictions on chess pieces. These restrictions prevented pieces from running off of the board and kept then in the normal rules of chess. Combine that with randomly scattering pieces on a board and assigning them different types, it looks like we’ve had a game that has been playing for a while. I weighted white vs black pieces based on position in order to make it look like we are at the “front line” of a war between the two sides. The final touch was an isometric display and it looks like the game could go on forever!
Wizard Chess -> Destruction
I’ve loved chess all my life but I understand that most people find chess to be boring. I’ve always loved the strategy and the sound of pieces moving around, but sometimes it’s best to just have a visual spectacle. This was the first test that I did of RBD pieces crashing into each other. I later hooked this up with my chessboard and assigned “static” or “active” objects in order to make the proper pieces shatter only when it was their time to. It’s important to me to keep the setup fully procedural and even though art-directed destruction often looks better, I wanted all destruction to work with all my projects. Since then I’ve played with the movement and weight of the pieces in order to get behavior that looks good for my next step in my project.
Chess Planet Wars
This video is a “chess planet” adorned with a checkerboard pattern with chess pieces hitting each other and bursting off into space with lowered gravity. There is a smoke simulation in the background to represent a galaxy and “stars” that cast some extreme lights on the chess pieces.
I wanted to make a visually appealing representation of chess and I think I accomplished that. There is no real “focal point” for this but I can say with confidence that the effect is fully procedural, and I can switch out the chess pieces and behavior in a matter of seconds. It was always a goal for me on this project to keep a fully procedural framework, and I am glad that Houdini supplies me with the tools to do so.