Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

NVIDIA Competition 2008 / [PhysX Comp 2008] enthusiast's entry (Rigid Bodies)

Author
Message
enthusiast
21
Years of Service
User Offline
Joined: 8th Aug 2004
Location: ...
Posted: 25th Jul 2008 10:48 Edited at: 25th Jul 2008 14:17
Hello everyone, I saw my entry listed on the "Final Entries for the 20th JULY deadline" thread, so now I don't have to worry if they were received or not.

So now I'll tell you guys about them.

History
My entry was originally my idea for a fluids demo entry, though it was inspired by the force fields demo which came with the Dark Basic and Dark Physics Trial. Basically it will allow you to place widgets anywhere on screen using the mouse, then you would press a button to start the simulation, and you can watch as the fluids interact with the various widgets on screen. As I was designing it, I figured that this system would be flexible enough for an uber entry. Unfortunately my testing revealed that there was a problem with the rendering of fluids on my machine, so I dropped both fluids and uber demo ideas.

However since the system is that flexible I can still use it for the other competitions. I chose Rigid bodies and Cloth, since they were easy to make and they have lots of commands to play with.


First I'll tell you guys about the Rigid bodies entry. Please refer to the screenshots I attached with this post.

The System

My entry revolves around widgets, they are objects you can place on the screen by first, choosing a widget by using the number keys, then adjusting their settings by using the "Q" and "E" buttons, then clicking on the screen. You can also move them around by clicking and dragging. Be careful though not to click on an existing object while placing them, as you'll end up moving them instead of placing a new one. To delete a widget simply right click on it. To move the camera use the WASD keys and the scroll wheel to zoom in and out. To start the simulation and see the widgets in action, press Enter, this will initiate "Physx mode".


The widgets

The widgets are as follows in order of what key calls them, please refer to the top left screen shot on the image I attached.

1. Pointer: not really a widget as it places nothing. It's useful though when moving objects around without accidentally placing a new one. Pointer has no settings

2. Rigid: actually I should have named this "static" instead, since that is what it is, static objects. On the screenshot you can see a wedge and 6 cubes near the center and 1 on top of the chain on the left. There is also a sphere, two ramps and a funnel (from my fluids entry) .

3. Dynamic: obviously dynamic objects. You can see the 3 types on the screenshot, a cube, a sphere and a diamond.

4. Joint: of course rigid body joints, You cannot see them but they are represented by tiny white objects, as you can see on the chain on the left. Spherical joints are represented by spheres, Fixed joints by cubes and distance joints by cones. To make a joint click on an object then click on another, jointed objects will turn blue . This will create a chain that will continue until you right click or choose another widget. You can delete a joint by right clicking on its representation. The emitter joint representations and the bin will not connect to a joint. Moving objects is disabled on joint mode, while the joints themselves will stay in the middle of the two objects its connecting.

5. Attractor: is a forcefield that pulls objects into itself. The forcefield is invisible, but is represented by a static green sphere. It has 3 settings "low", "mid", "high".

6. Repeller: is the opposite of Attractor and is represented by a static red sphere. It has the same settings as the Attractor. You can see one on the screen shot, to the left of the joints chain.

7. Emitter: the emitter is an object which makes objects when you click the mouse during Physx mode. You can see one on the upper right of the first screen shot. It's a yellow cone. It has 3 types like the ones on dynamic object.

8. Moving Platform: a kinematic rigid body object which moves in direction that you define. To place one simply make a line in the same way you would do in PowerPoint. The line will have a start and end point while the moving platform will sit in their middle. You can move the platform around by dragging the two control points, and delete it by right clicking on the platform itself. When Physx mode is turned on it will start moving towards the 2nd end point, and collide with dynamic objects. It will ignore static objects and other platforms.

9. bin: the bin will delete dynamic objects and their joints which comes in contact with it. Note that objects to be deleted does not necessarily have to go inside the bin to be deleted and that it will only delete dynamic objects and joints, so don't expect it to delete a moving platform or other widgets. You can see one on the screen shot, it's a white trash bin with "bin" written on it.

So, that's the nine widgets. Now I'll tell yo about the rest of the screen shots.


More on the screenshots

The top right shot is the same scene as the one on the left, but this time Physx mode has been turned on. As you can see the dynamic objects fell because of gravity. The diamond is no where to be seen since it fell on the bin. The emitter is making some cubes, and the moving platform is already on the second control point. The joints chain has been pushed by the repeller and is now swinging back.

The middle screen shots shows a scene with a group of dynamic cubes sitting on top of static ones, while there is a moving platform line intersecting them. The middle right shot shows the scene in Physx mode.

The 2 bottom screen shots, also shows a scene with Physx mode turned off and turned on. On the second shot you can see that the two spheres were thrown off by the repeller while the two diamonds continued dropping. This is because the diamonds were not in range of the repeller's field.



The Final Version

Here are some improvements I'm planning to implement on the final version.

1. Additional widget settings: Right now I'm thinking more objects for Rigid and Dynamic widgets and some additional settings for the Force fields.

2. A better GUI: Primarily to accommodate the additional widget settings. and to make it easier to adjust them.

3. Improved Graphics: Better texture for all objects and a background. I might use shaders if my computer can take it without slowing to a crawl.

4. New jointed object indicator: Currently jointed objects turn blue, I'm planning on a new way to indicate this.

5. A saving system: Allows the saving and loading of scenes, so you can always come back to view and edit your creations, maybe even share them.

6. Better accuracy: The placement system is a bit inaccurate near the edges of the screen, I'm working on algorithms to fix this.

7. Squash bugs: I'm continuously scrutinizing my entries for any bugs. I found two regarding moving platforms and restarting, and was finally able to fix them today.

EDIT:
8. Oh, and if TGC or Nvidia wants me to add something which me and my computer can do, I'll add it!

Later on I'll make a thread about my entry for the Cloth competition.
-

System: AMD Athlon XP 2200+, nForce 2 ultra 400, 768 MB PC-2700 RAM, 40+320 GB 7200 Hard Drive, Geforce 6200 256 MB AGP , 384Kbps wireless broadband
enthusiast
21
Years of Service
User Offline
Joined: 8th Aug 2004
Location: ...
Posted: 5th Sep 2008 09:00 Edited at: 5th Sep 2008 12:24
Hello again everyone, I received e-mail from Lee that my entry to Rigid body Competition has been successfully received. So I'll tell you guys about it now.


History

As I mentioned last time, my entires to the rigid and cloth demo compos were previously an entry for the uber demo contest, which was unfortunately canceled because of my PC's inability to render fluids properly. In making my final entries I took a similar process, I first made a general purpose Physics demo with a new GUI, then used that as a template for my the entries.

The System

The base system still stays the same but, the GUI now uses tabs and buttons instead of using keyboard keys. Some widgets has been added, some has been replaced and other has been recategorized.

Here is a screen shot of the demo once it's opened.



As you can see above, the new and improved demo follows a similar layout, but now looks better. It now has a backdrop, which is a green on black grid, which is also functional as well nice looking. The text in is now colored and some are repositioned, in particular the screen fps indicator, so they don't look like debug text anymore.

Down below we have the most important part of the demo, the tabs and buttons. To choose a widget category simply click on one of tabs, the choose a widget by clicking on its button, then clicking on the grid to place the widget. By default the widget category is "Static", which was previously called "Rigid".

Now there are some changes in the widget categories. The attractor and "repeller" are "categorized" under "forcefield". There are some new widgets, they are "soft body" and "plank". I also added a gallery so the user can watch a physics simulation without having to place any widgets themselves. I'll discuss the new additions after this.


Soft bodies

I added soft bodies to give my demo, what Lee calls "more GPU delta", as well as to comply with the judging criteria number one "Use multiple PhysX features".

Here is a screen shot of the 3 types of soft bodies, sphere, and spring, along with their respective buttons.



Now here they are when the physics simulation is turned on.



Now you will notice that there are 3 small buttons near the center. The buttons with a "+" and "-" are adjustment buttons, they adjust the intensity of a parameter depending on the widget. The other button with a small green square and a large red square is the "use universal scalability button". Pressing this button will override the settings of the adjustment buttons and, instead use a universal scalability setting which you can set when starting a physics simulation. In the case of soft bodies these affect their detail.

Here is a screen shot of two spring soft bodies, each above a repeller forcefield widget. The one on the left is set to low detail while the one on the right is set to high detail.



As you can see while the repeller only crumples the low detail one, the high detail one turns to a string! After this screen shot was taken, the low detail one bounces back to shape while the high detail one stays a string.

Planks

When Lee/Nvidia e-mailed me last month to give me feedback, on of their suggestions was that I add a a "big floor" as a new widget. I took the idea a step further with planks.

Planks are static rigid bodies which are made by by clicking and dragging to make a line, then letting go to make a plank with the same length as the line. With this system it's possible to make a floor as big as small as the GUI will allow. It's not limited to only floors, it can also make walls, and ramps, because of this planks replaced the ramp static objects.

There is also a special plank called deleter. It's a plank with a purple texture, and obviously deletes objects, though only dynamic ones. The deleter replaces the bin.

Here is a screen shot of planks with a deleter on the lower right.



The Gallery

Previously I mentioned that I would add a "saving system" to my demo, unfortunately the rules state that the demos may not write to the hard drive. However Lee/Nvdia suggested the I add an "automated mode" where user can just sit back and watch physics. So I decided to make a gallery. The gallery was basically the "loading system" to complement the "saving system". The gallery exhibits are 2 saves I made with the saving system.

Here is a screen shot of the gallery. The user simply has to click one of the pictures to load it. Then simply press enter to watch the simulation running.



Oh, and just in case you want to know the saving system is still there but now inaccessible to the user, so the demo will not write anything to the hard drive.

Other improvements

Aside from the new widgets I also added some other new improvements to streamline the current system, and to comply with Lee/Nvidia's feedback.

Progress prompt

When the simulation is turned on the program sometimes looks as if it hanged, especially with many object, so that's probably why Lee/Nvidia suggested that I add a prompt to tell the user that the program is working. I added a prompt and , it even tells the current progress.

Here is a screen shot.



Universal scalability setting

Some widgets can use the "Universal scalability setting". This will allow the user to view the same scene with either low or high complexity.

Here is screen shot of the program asking the user to choose a setting.



Simulation tools

I added some tools to use during the simulation, to allow the user to interact with scene. They are the emitter toggle button which will turn all emitters on or off, and the pick up tool which will pick up objects by clicking on them and, dropping them by right clicking. They are both on by default.

Here is screen shot using the pickup tool. Notice the cube on the center, above the soft body, that has been picked up.



Here is a screen shot of the emitters turned off. The emitter is the pink question mark.



System: AMD Athlon XP 2200+, nForce 2 ultra 400, 768 MB PC-2700 RAM, 40+320 GB 7200 Hard Drive, Geforce 6200 256 MB AGP , 384Kbps wireless broadband
enthusiast
21
Years of Service
User Offline
Joined: 8th Aug 2004
Location: ...
Posted: 17th Sep 2008 14:12 Edited at: 17th Sep 2008 20:55
Hello again everyone, I decided to make a couple more screen shots.

One of the most important criteria of the compo is the scalability of the demos. Now while my entry has lots of scalability options like soft body detail and emitter density, its primary source of scalability is still, the ability to add more and more objects to the scene. Here are some screen shots with annotations showing lots of objects, around 200+ according to the progress prompt.



As you can see the scene, is composed mostly of dynamic rigid objects, usually spheres. However we also have additional objects like repellers annotated with red circles and various softbodies in yellow circles. All of these are enclosed in 4 planks forming a box.



Now I have activated the scene to enable physx mode. As you can see on the FPS counter, annotated with gray, my PC has some trouble with it but, it should be no problem with a hardware accelerated system. Notice the mostly empty spaces in the green circles, these are obviously because of the repellers. The soft bodies, still in yellow circles, are mostly deformed, especially the spring soft bodies, like the one to left. The sphere soft body to the bottom right is squashed between the plank and several dynamic spheres. The cube soft bodies seem to have either fallen off or they have been flattened by the torrent of objects.

System: AMD Athlon XP 2200+, nForce 2 ultra 400, 768 MB PC-2700 RAM, 40+320 GB 7200 Hard Drive, Geforce 6200 256 MB AGP , 384Kbps wireless broadband

Login to post a reply

Server time is: 2026-06-11 11:37:31
Your offset time is: 2026-06-11 11:37:31