• Facebook - Grey Circle
  • LinkedIn - Grey Circle
  • Vimeo - Grey Circle
  • SideFX Gallery

Title: Sneaker Commercial

Programs: Houdini

Modeled: N/A

SIM: Houdini

Lighting: N/A

Texture: Houdini (Arnold)

Rendering: Arnold


A collaboration with the aim of designing, and creating multiple commercial variants with the hope of being bid to a company.

This page is dedicated to the work by Luke Vuilliomenet (LVFXStudios). However the project as a whole was a cumulative effort by all present.

***All work shown is used under the assumption as Work in Progress (WIP), and therefore cannot be taken as an accurate depiction of final deliverable until stated otherwise. 7/3/2020***


Director: Kevin Mannens

Project Supervisor: Morgan Woodward

Editor: Paul Griswold

VFX Supervisor: Noah Catan

Lead FX Artist: Luke Vuilliomenet

FX Artist: Yanni Fong

FX Artist: Chen Tang

FX Artist: Junpeng Tang

Modeler: Wei Bin Ng

Environment Modeling & FX: Julie Krizan

Texture Artist: Wei Bin Ng

FX Textures: Respective FX Artist

Animator: Paul Griswold

Lead Lighter: Morgan Woodward

Lighter: Gavin Montgomery

Lead Compositor: Noah Catan

Compositor: Gavin Montgomery

Compositor: Wei Bin Ng

Render Manager: Morgan Woodward

Commercial Shot
Test Renders

Render test of FX transition growth, and shader layering test.

Transition Test
Geo Prep

Unwanted attributes are deleted. Afterwards the mesh is subdivided for solver accuracy; while, a rest attribute is stored per points to be used later.

Scatter Points

Points are scattered into a desired area for the growth to begin.

Set Grow

Start points are selected from the scattered region. Afterwards the "grow" attribute is initialized.

Set Decay

The starting points are used to generate a region of points which are then fed to the high resolution scatter. The point wrangle uses "nearpoint" function to determine if the high resolution is a starting region or not.

Set Decay

Check if the high resolution is in a starting region or not. The points are then fed into a solver node to generate the growth effect utilizing a noise to create variance.

Output Growth Solve

The points are then colored based on the "grow" attribute. Which is then written out and used to drive different aspects of the transformation.

Transfer Grow

The grow attribute is transferred to the base shoe model (Dark blue). While an edge attribute is created by offsetting the grow solve forward in time and blasted to a specific value (Pink).

*Primitive groups are created using these values as guides*

Creating Paper Edge

Geo Prep

The geometry is cleaned by fusing any overlapping points. Afterwards the normal scale is adjusted, followed by moving the geometry inward along normal to rest inside of outer shoe geometry. The surface is then reduced for better pattern creation, sorted at random, and given a rest attribute.

Generate VDB

The random points in the "move" group are adjusted using soft peak, followed by adding noise to the geometry as a whole. The grow and edge attributes are then isolated and extruded so that a vdb can be generated. A wrangle is used to smooth the P position on the outer edge of the geo. Finally a vdb is generated, using a reshape on dilate to remove any messy intersections.

Creating Cardboard Interior

Remove Edge

Blast remove edge primitives. Create a rest attribute. Remove any points with no "grow" attribute", also remove any overlapping low value grow.

Check Edge

Check if any edge overlaps. If so blur attribute and create rest for position adjustment.

Create Corrugated Cardboard

Points on the inner layers are first removed as time goes on to prevent unneeded geometry. Depending on the layer being created the geometry is moved along its normal using the N vector or a sin wave. Once merged together the layers positions are adjusted if the "edge" attribute is detected and then VDB'd.

Combine Layers

The paper and cardboard layers are vdb combined, converted to polygons, and grouped.

Extra Pieces

The smaller pieces (Laces, logos, webbing, etc.) were unable to accurately generate the corrugated pattern; therefore, they were passed through a simplified system using the same techniques minus the movement along normal.

Shader Attributes

The different stages of the growth are used to attribute transfer a float value that will be used to generate the FX shaders.

Transfer UV + Name

In order to create clean accurate geometry a vdb was created; however, in doing so the UV attribute along with name attributes needed for texturing were lost from the original model. The original model was separated into individual parts, subdivided, and then passed the attributes over to the new FX model.

Final Extrusion

As the final shoe shader growth appears the model is slightly extruded along its normal and then the position is smooth between the original surface and the new edge.

Creating Fibers

Geo Prep

The provided model is subdivided to give a smoother outline. Then a vdb is generated to generate a large number of primitives. The remesh node is used to convert the quads into triangles and in doing so gives a more random placement. Noise is then generate to drive a poly reduction in certain areas so that there are longer and shorter segments. Finally primitives are removed at random using noise and a rand() vex function.

End Result:

Geometry containing an irregular placement of larger and smaller primitive edges with holes. Thus prevent straight paths to be fed into the "Find Shortest Path" node.

Find Shortest Path

The growth solve at different stages is taken from before and passed to the prepared path geo. By removing or not removing a value greater than or less than zero on grow gives predetermined start and end regions. Using a group by range node, start and end points are defined, and fed into the find shortest path node. Finally a resample is used to adjust the overall shape of the paths.

Create Primary Rest

Create a gradient based on number of points per primitive. Tell the points which primitive they exist on. Transfer the normal from the original shoe model. Move the point along its normal to be within the outer shell geometry, and define this as the starting restPath position.

Micro Fibers

Define a cross direction between normal and direction of curve. Noise is then added to this cross direction and point is moved based on this vector. The new position is then moved to a polywire surface from the scatter points of the original model. The points are mixed between the new position and the original rest position and stored in a new Micro rest.

Solver Rest

A similar process is taken for creating the solver rest (the position used to transfer any new information from the growth solver to fibers). Prior to the final ray the main rest attribute is created. At the end the new fibers are rayed to the actual surface of the original model.

Transformation Rest

Create new rest position on the inside of final FX transition model to prevent overlap. Then restore solver rest.

Transfer Solver Attributes

Transfer, shrink (blue underneath orange), micro (purple to red), transform (orange).

Shape Fibers

Shrink is used to adjust between the rest and solverRest positions. Micro then mixes between the newly created position and the microRest. Transform then mixes between the finished micro position and the needed transformRest.

At the same time a random pscale multiplier is generated for each fiber primitive. and is used along with a random pscale.

Create Mesh

Each fiber is animated using a carve node. Unnecessary attributes are deleted. A primTotal attribute is created. Afterwards a predefined shape containing uv's (left viewer, right side) is swept onto the fiber curves using pscale. The gradient and prim_num are promoted to vertex and used to proceduraly layout each fibers uv's.

Apply Animation

The base shoe and extra pieces are separated out and the animation is apply using a pointdeform node. This applies for all aspects, FX model and fibers.

Cardboard Shader Pt1

Noise and colors are mixed together using the attributes mentioned earlier to generate the shaders.

Cardboard Shader Pt2

Shader settings

Cardboard Shader Pt3

Shader displacement

Fiber Shader
Final Shaders

The final shoe shaders were created by Wei Bin Ng. The FX (cardboard and fiber) shaders were mixed with the final shaders using the same method to create a growing transition between the two.

All Rights Reserved as intellectual property

by Luke Vuilliomenet