Newspaper generator (natural-looking stacking/collision)

   781   9   0
User Avatar
Member
12 posts
Joined: July 2026
Offline
Hi everyone! I’m currently building a procedural generator in Houdini to create stacks of newspapers and manga (as the reference shows) that will eventually be exported and configured in Unreal Engine.

Right now, I have two main parts I'm working on:

The Generator Setup: Dynamically reading individual primitive heights to generate a proper height array for a point line instancer.


The Settlement Simulation: I want the stacked instances to naturally settle, tilt, and collide with each other so the stack looks organic and realistic rather than perfectly uniform.

The Challenge:

I initially tried Vellum Cloth, but the paper meshes are deforming and flattening out way too much under the simulation weight.

I'm looking for the best approach to achieve a natural-looking stacking/collision result (either by tweaking Vellum—like using Shape Match—or switching to RBD/Bullet rigid bodies), keeping in mind that this needs to work well as a configurable generator in Unreal Engine later on.

Any advice on the best workflow for this? Thanks in advance!

Attachments:
0fa48d69a15fd5588cfe033a83521c31.jpg (45.0 KB)
actual_setup.png (774.8 KB)

User Avatar
Member
9720 posts
Joined: July 2007
Offline
vellum is a good option and can give you nice natural deformation

the most important thing is to generate a separate proxy geo for vellum sim, usually with unique piece attribute so that you can then point deform the hi-res geo per piece (newspaper)

I'd start with a simple box with a few divisions per newspaper and use tetrahedral softbody setup

to work as a generator in UE I assume you will want to use Quasi-Static simulation type in Vellum
Tomas Slancik
CG Supervisor
Framestore, NY
User Avatar
Member
12 posts
Joined: July 2026
Offline
tamte
vellum is a good option and can give you nice natural deformation

the most important thing is to generate a separate proxy geo for vellum sim, usually with unique piece attribute so that you can then point deform the hi-res geo per piece (newspaper)

I'd start with a simple box with a few divisions per newspaper and use tetrahedral softbody setup

to work as a generator in UE I assume you will want to use Quasi-Static simulation type in Vellum
Thank you! since im a newbie i'll study this issue this weekend and i'll come back with updates ^^
User Avatar
Member
70 posts
Joined: March 2024
Offline
you can try making a simple bounding box, with lots of divisions, or a convex hull, simulate it with the rope to squeeze it like the refrence image, and then point deform the newspaper stack with it, and before that add some randomness to the stack's newspapers without using simulation.
User Avatar
Member
12 posts
Joined: July 2026
Offline
tamte
vellum is a good option and can give you nice natural deformation

the most important thing is to generate a separate proxy geo for vellum sim, usually with unique piece attribute so that you can then point deform the hi-res geo per piece (newspaper)

I'd start with a simple box with a few divisions per newspaper and use tetrahedral softbody setup

to work as a generator in UE I assume you will want to use Quasi-Static simulation type in Vellum

I think im almost there guys:
As you recommended...
Instead of simulating the high resolution meshes directly, I created a lightweight proxy simulation workflow:

• Generated a low-resolution proxy mesh for each piece using subdivided Bounds.
• Assigned a unique name attribute per instance to keep every object separated through the pipeline.
• Used these proxies as Vellum simulation geometry, keeping the high resolution assets untouched.
• Simulated the whole stack together with Vellum, allowing the pieces to interact naturally with each other and with a collision floor.
• Imported only the simulated Vellum geometry back from the DOP network.
• Used Point Deform to transfer the low-resolution simulation back onto the original high-resolution meshes.

Problems:
-My cords arn't on point because uses a shrink wrap method and i don't know how to improve it, since things are adquiring more and more complexity.
-The simulated meshes are overlapping a bit ¿how can i avoid that?
-For some reason my material now is a flat white color.

Your help is proving invaluable; thank you very much.

Attachments:
newspaper.png (453.9 KB)

User Avatar
Member
12 posts
Joined: July 2026
Offline
At this moment i can't continue cuz i've set up two simulations one after another and the second one doesn't work.

The first simulation is building the pile of newspapers and deforming them and the second should wrap a cord around but doesnt work

The first simulation is basically this:

And the second simulation setup is...

I would greatly appreciate your help.

Attachments:
sim1.png (1.0 MB)
sim1dopnet.png (129.5 KB)
sim2.png (50.4 KB)
sim2dopnet.png (58.6 KB)

User Avatar
Member
12 posts
Joined: July 2026
Offline
I think i've made it!

Attachments:
sim_end.png (589.8 KB)

User Avatar
Member
12 posts
Joined: July 2026
Offline
I'm back with more problems! So..basically UNREAL does not identify and assign the houdini materials:


I have assigned the unreal material correctly and then I have copied the reference of the unreal material in Houdini and somehow it only detects one but it also does not apply it, the blank mesh appears (I have checked in 3ds max that the mesh has several ids)

In short, the HDA is imported into unreal without materials despite having them assigned and with only one ID, because if I drag the material manually it is applied to the entire object.

Pls help i'm blocked right now
Edited by road_to_cga - yesterday 06:52:04

Attachments:
unreal.png (1.3 MB)
mat.png (366.0 KB)

User Avatar
Member
9720 posts
Joined: July 2007
Offline
Your second attribute create node seems to be creating unreal_material2
Both should create attribute named unreal_material, just with different value for different group of polys
Edited by tamte - yesterday 09:06:29
Tomas Slancik
CG Supervisor
Framestore, NY
User Avatar
Member
12 posts
Joined: July 2026
Offline
Thank you so much! I hadn't noticed that detail.
Another issue I encountered—and couldn't resolve (I had to use a workaround)—is that the Unreal Material node doesn't correctly recognize the primitive groups; it allows me to assign them, but it seems they aren't applied properly in the engine.
In any case, here is a screenshot showing how it looks in Unreal (artstation sneak pic):

Many thanks to those who helped me with your feedback!
I'll be back!

Attachments:
result.jpg (706.9 KB)

  • Quick Links