I am looking for someone to help me implement an idea inside Houdini.
The idea revolves around automating the cutting of a model in a specific way. The purpose for cutting the model is twofold:
1- To separate it into manageable chunks for 3d printing
2- To create a specific visual effect.
The essence of the idea is to create a custom interface / Digital Asset with different parameters that would specify how the model is cut and automate the cutting and export process. This would need to work for any model made of polygons that I wish to apply it on.
Cutting: The simplest way the model would be cut can me imagined like a 3d grid made up of same sized squares. So the model to be cut would be completely inside this grid and the grid lines would represent the cut planes. In this example of a perfectly square grid the model would be cut up into same sized cubes all around.
To further functionality we would need to implement custom parameters that would allow me to modify the ‘grid’ in a certain way, so that the cut-up model is not cut in perfectly even pieces (or is, depending on what is needed).
1st example – as a very simple example of what I would need: given a certain model, I would input the XYZ dimensions of the final pieces I need (say 13.5mm x 13.5mm x 16mm), hit ‘cut’ and the script or whatever implementation you create would cut the selected 3d model into pieces of that size and export them as .STL files into a specific folder.
(note – some of the times the model would be a ‘shell’, meaning it would have a certain thickness and be empty in the interior. In this case the outcome is the same – the shell is cut up into pieces that do not exceed the maximum XYZ sizes predefined).
2nd example – now we can get a little more creative. One effect I am looking for is to ‘cubify’ a model in a certain way, with the model being cut up into small cubes of different sizes in a random or semi-random way. For example I could set a min and max in each XYZ parameter and have the cuts be randomly distributed along the given ranges. More advanced functionality would give me more control over how the randomness is ‘distributed’ for example if I only want small and large cubes but no middle sized cubes along the range (this could be set with a curve for example), or if I would like the cubes to start out big and become small towards the top of the model.
The last functionality I would need is for the cut pieces to be ‘pushed out’ by a given amount, so that the cubed nature of the model is apparent (ie. If they are not moved then there would be no visible change to the model). The amount they would be pushed out could depend on their size, their location or some other variable, or could be random within a predefined range. This needs to be controlled separately from the cutting.
To sum up, I would like a custom interface inside of Houdini with the required parameters / controls to achieve the following functionality when a model is selected:
1. Cut the model in predefined exact XYZ dimensions.
2. Cut the model in random XYZ dimensions within a predefined range (ie. Min/max)
3. Have greater control over the randomness of the size of the cuts, for example with a curve, so that effects such as cubes growing from large to small across a direction could be achieved, or a bias could be established for cuts towards certain portions of the range (ie. Only small and large, little middle).
4. ‘Push out’ the resulting pieces from the center of the model so visually it is apparent how they have been cut (purely visual effect not affecting the actual cut pieces in any way except translation in space)
5. Control for how much they are pushed out depending on some variable such as their size, location or randomly from a predefined range (this needs to be controlled independently of the cutting.)
6. Export the individual parts cut as .STLs and name them automatically (a simple naming sequence such as numbering would suffice).
It should be noted that when cutting a model the resulting pieces should be ‘whole’. Ie. They should have all walls and not simply be a surface.
The requirements for the resulting pieces are:
1. Must be watertight mesh
2. Must not contain any mesh errors (ie. Non manifold geometry, unused vertices, etc.)
3. Must fit perfectly with the other pieces (ie. There should be no dimensional change).
Ideally this would be a Digital Asset which I can use with any model, so that I can import it into a scene, connect it to a model and see an interface for performing the cuts when the right node is selected.