Precise simulation / particles help?
In your case, the Molecular Addon works best. To download it, go here: https://github.com/scorpion81/Blender-Molecular-Script/releases and select the zip file for your OS. Do not unzip it. Go to Edit-&gt;Preferences-&gt;Addons, click Install and select the zip file. Then enable it.
Usage: The molecular add on is a way to make particle systems behave more lifelike, for example, collisions, stickiness, etc.
For your case (follow these):

Create a particle emitter (can be any shape)
Give your mechanical parts collision modifiers
Instance an object on the particle system (I use 1 subdivision Icospheres, low geometry is better)
Press the play button and make sure the particles fall correctly as you want. Note that the molecular addon is still not working right now and particles will still behave normally, which includes clipping through each other.
Once you are happy, scroll down inside the particle system settings and check &quot;Molecular&quot;. The add on is now enabled, but in order for you to see the effects you need to bake it. Now we will adjust the settings.
Open the density menu and press the button. Choose &quot;sand&quot;, and this will accurately calculate the weights of each particle.
Open the collision menu and enable Self Collision (particles collide) and Collision with Others (particles collide with other things).
In order to see the results, open the simulate menu, choose a frame range, and press &quot;simulate&quot;. Once you are done you can view the simulation by playing the animation, and you can also reset it by just pressing &quot;free bake&quot;

Tips:

Instance low poly objects on your particle system. Even one less vertex makes a big difference
Make sure to increase the particle lifespan so they make it to the end of the animation.
Are items still clipping through each other? Increase the timesteps. I usually use around 16 timesteps for relatively fast simulations.