# The Box SOP

The Ultimate Houdini node reference

# Visit the Node Bible

To learn more, please log in or sign up for free to explore the Node Bible.

### Box

#### The box sop makes a cube! - Also known as a "box." You have the option of creating a box based on various primitive types - Polygon, Polygon Mesh, Mesh, NURBS, Bezier, and Points

Drag to resize

Summary:

It might be easy to dismiss the box sop as self-explanatory, but nothing in Houdini is as easy as it appears. Some of the options on this node can get confusing and might leave you with issues further down your network if you don't understand how a cube is made. As an example, you might not understand the difference between "polygon," "mesh," and "polygon mesh," and this makes a large impact on what you can do to affect this cube. It seems rather silly to think of a cube as something complicated, but in Houdini, understanding the details is crucial, and this ultimately helps you understand how to alter data further down your network. This is especially applicable when you want to procedurally model something.

Drag to resize

Primitive Type:

---------------------------

It's helpful to think of the "primitive" as the mathematical formula which is responsible for creating something your scene. So, which "formula" would you like to use?

--------------------------

-- Single polygon faces are used to generate the box. These polygon faces are merged together at the corners with the "consolidate corner points" checked on. Here are the differences between "polygon" and "polygon mesh":

* Polygon Gives you the option to toggle the divisions setting. This transforms your polygons into polylines. These polylines can be subdivided along the polygon with the divisions. Enforcement bars is also available which gives you the option to diagonally connect those poly lines. The "Polygon Mesh" does not have these options available. In addition, you can not subdivide your polygons when the primitive type is set to "Polygon." Instead, to subdivide along the faces, you'll need to use "Polygon Mesh."

-- Polygon mesh is similar to "Polygon," but instead you now have the option to select what sort of connectivity you would like to use along with axis divisions along the polygon faces. To see these various connectivity types, please see the video above at around 3 minutes.

It's helpful to think of the "primitive" as the mathematical formula which is responsible for creating something your scene. So, which "formula" would you like to use?

--------------------------

__Polygon:__-- Single polygon faces are used to generate the box. These polygon faces are merged together at the corners with the "consolidate corner points" checked on. Here are the differences between "polygon" and "polygon mesh":

* Polygon Gives you the option to toggle the divisions setting. This transforms your polygons into polylines. These polylines can be subdivided along the polygon with the divisions. Enforcement bars is also available which gives you the option to diagonally connect those poly lines. The "Polygon Mesh" does not have these options available. In addition, you can not subdivide your polygons when the primitive type is set to "Polygon." Instead, to subdivide along the faces, you'll need to use "Polygon Mesh."

__Polygon Mesh:__-- Polygon mesh is similar to "Polygon," but instead you now have the option to select what sort of connectivity you would like to use along with axis divisions along the polygon faces. To see these various connectivity types, please see the video above at around 3 minutes.

__Mesh:__-- A "mesh" primitive is basically the same thing as a NURB surface with straight isoparms. Why does this exist? Because way back in the days of windows 98, they needed to save memory. Polygons took more information to express a face, whereas a "mesh" primitive used less. It's a very rare to non-existent situation where you would want to use a "Mesh" primitive type these days, but it's there in case you'd like to experiment with it.

__NURBS__-- NURBS stands for "Non-Uniform Rational Basis Spline." What this means in practical terms is that unlike polygons, the interpolation between each vertex of the primitive isn't linear. And the math behind the hood is different because NURBS uses curves to determine the shape of the primitive.

As a result, NURB surfaces are great for modeling curved objects. A common workflow when using NURBs is to model with them to get the nice curved shapes and then convert them to polygons before rendering. The points which move the NURB surfaces around are called "CVs" - Which stands for "control vertices." For more information about NURBS, there's a great series of videos by Hipflask which cover the topic of NURBs curves in great detail. Check it out by visiting the videos below:

__Bezier:__-- Bezier curves & surfaces appear to be the same thing as NURBs, however, they are different in how the curve operates. According to the SideFX docs:

For more information about the differences between NURBS and Bezier Curves, please visit this link:

https://www.3dbiology.com/nurbs-vs-bezier-whats-the-difference/

In general, I would recommend working with NURBs surfaces, unless you have a reason to use Bezier surfaces.

-- This setting only keeps the points of the box.

https://www.3dbiology.com/nurbs-vs-bezier-whats-the-difference/

In general, I would recommend working with NURBs surfaces, unless you have a reason to use Bezier surfaces.

__Points:__-- This setting only keeps the points of the box.

Drag to resize

__Size:__-- How large is the box?

__Center:__-- Where shall thy box be placed?

__Rotate:__-- How shalt thy box be rotated?

__Uniform Scale:__-- How shalt the cube be scaled overall?

__Axis Divisions:__-- This is available when using Polygon Mesh, NURBS, Bezier, or Points. This setting determines how many times the cube should be subdivided.

__Axis Orders:__-- This is only available when using Bezier or NURBs. Imagine a certain number of cvs which span across each surface patch. The number of cvs which belong to each patch are determined here. To see what this does, simply play around with the parameters and experiment with moving the cvs around.

__Divisions:__-- This is available when using Polygons. See above in the "Polygon" section for information.

__Enforcement Bars:__-- This is available when using Polygons. See above in the "Polygon" section for information.

__Oriented Bounding Box (points only):__-- When you plug something into the box sop, the box sop will take the bounding shape of the incoming geo. It will not, by default, orient that bounding box, however. Checking on this parameter will orient the box. See below images:

__Add Vertex Normals:__-- By default, implicit vertex normals are present on your box. However, this normal data is not stored as a vertex attribute that you see when middle-mousing the node. Checking this box on will add the vertex N attribute.