Concept / Updates / Breakdown
After Beta testing, several issues have surfaced. When rendering in a batch render the user should have no problem but when uploaded to a render farm 15+ errors will occur. This is due to a fussy dynamics system. A quick fix is to go into your hypergraph (connection editor) and delete the "lbdynamics" or anything connected to the junk that is dynamics. Also delete the rigid body attached to the ground plane. I also had the code leave the "lb_Particles" to so you may use them again and also keep count of how manytimes the tool has been run. This causes more problems so you need to delete that also. I think that covers the all the errors but to be safe you might want to go into your project folder > particles folder and delete the contents just to be safe. Also due to the SCAD renderfarm you might need to delete any custom shelf buttons. I will fix these problems in the near feature when time is isn't so costly in the full release of the project. For now you can also export the your "junk" group and then reimport it to clear out all those nasty dynamics.
Started beta testing in production and came across several “bug” or just human error (my error). I had the a constraint applied to each object created, this was fine in the single ground plane test but in full testing it caused an object to be place at the edges of the ground. Simply by taking this out it fixed it. Next problem during testing was objects would be placed in random spots above or below the position particles. This was caused by imported .obj files; they were created wrong and would reference their origin position. All I can say to fix this is to create your own objects within your scene.
I just completed the main part of my code. Through testing I ran into a bug with a test scene created by Chris Brown. I had a hard time figuring out why the objects I placed on the surface would rotate 180. So I checked the normals and being an indoor scene I found out that the normals were facing outward. I add a quick feature to check your normals and flip them if need be. I also added a fine tuning feature that causes an object to be picked up and dropped just like the dynamic solver. This feature is more on the individual side allowing for a single object to be “fixed”. One last bit I added since last update is a feature that counts the number of “junk” groups and appends a number so you may create several groups of “junk”.

Currently this is the interface in a Mac setting. I’m going to refine it and make it more appealing for the next update. Code is now downloadable just right click the link at the top and “save as”, the help documentation is also available.
I cleaned up the code a bit from last time but the biggest change is the way the objects lie on the ground. I added a geometry constraint with a random spin to them. I figured that minor interpenatration could never be fully rid of unless you hand move the objects. I digressed form the main purpose the tool as a scene population devise for medium to far range. Here is an example of two screen grabs showing the same draw layout but with two different instances. Notice that the objects are different but are in the same places.

Here is a test render just showing off some random "junk"

I’ve been able to get the objects to rest onto of the ground plane with a deal of success but at the cost of some things. I couldn’t use instanced objects so now I have it load in my objects (sphere, cylinder, cube) and randomly duplicate and place each object at each particle’s position. Within this for-loop I have it pick up the object and drop it using a gravity field (then clean up after itself). The nice thing about this is the fact that the objects will randomly rotate making the scene more varying. The problem is, when you drop these objects you need to run a few frames of the timeline. To prevent this process from taking a long time I’ve changed the magnitude of the gravity field to 500-1000. This causes some objects to fall through the ground plane.

Goals:
-Create a cleaning method.
-Fix up UI
-Fix and clean Variables and comments.
Update Two: I’ve made great headway with the placement method as I’ve found out about “Sketch Particles”. This built in attribute within the particles tool allows for the placement of particles with a mouse click. Used in conjunction with the “Make Live” feature I can now place particles on a surface

I’ve been able to instance objects to particles but ran into my first problem. When an object is instanced to a particle it is place at the center point or “hot spot” I need to find a way to create and place the object just on top of the ground plane. I could pick up the instanced object and then drop it down with a gravity field but instanced objects cannot carry dynamics.
Goals:
-Create a way for particles to lie onto of the ground plane.
-Start creating a U.I.
I’ve come up with several ways of distributing the objects and all deal with particles. I’ve chose to use them due to their easy connection to dynamics and the fact that they are just a vector (x,y,z). Then from there I can instance the objects to the particle’s position.
This method uses an emitter and an aim locator to shoot the objects out. This method is a bit haphazard as it doesn’t allow for direct control of where the particles go.

Another method uses the Maya paint tool to paint goal weights that then the particles can move to. Still this method uses an emitter to create the particles and doesn’t allow for a direct positioning of the particles.
Goals:
-Look into particle placement some more and come up with a better way of placing the particles. |