Zedd is a physics library for Axe programs, allowing all Axe games access to amazing physics. At its heart, Zedd is a collision solver, but its power lies in the fact that it is built to be expandable! With 3 libraries already included with the Beta, Zedd is fully compatible with external libraries! But most importantly, Zedd is Easy to Use! Never once do you need to delve into the Zedd program to make things work; Everything is controllable via the simple and easy to use function included with the program.

Now with Zedd, your games can feature realistic physics across all objects, and advanced effects such as ropes, springs, moving platforms, and much much more! This is a beta, so not all of the extra features are online, but everything needed to run the Zedd engine, as well as the demo have been included ^^. We sure to pick up the latest copy of Axe, the modded one by Runer here: http://www.mediafire.com/download.php?ww26ly4m11dcnto

Here is a screenshot of the demo program included with the release. The program is fully commented, and shows the kind of things that Zedd can accomplish ^^


You can pick up the download Here
Which included the Zedd library, the demo program, as well as 3 additional libraries that can be used alongside Zedd
Perhaps link your downloads elsewhere? Many of us here cannot access them in their current state of location.
Would you mind uploading the program/screenshots to some other website so the people who are not welcome can view them, too?

That said, I'm glad to see this isn't dead Smile I remember seeing this when it was first released, although I never delved too much into how to use the engine.
Whoops sorry about that x.x Everything should be fixed now Smile
This is amazing Smile
Wow, very nice! It looks really fast too, nice job. Smile
Thanks for rehosting it. You're welcome to upload it to the Cemetech archives if you like, as well. Very impressive indeed, and that screenshot helps a lot. How long did this take you to get into this form? How many lines of code is it, roughly? I'm curious how complex this type of library is for Axe programmers to write.
The engine itself is about 200 lines of Axe code, although half of that is including all of the special functions that help with usability. Zedd has been around as a concept for a while back. (I believe you even saw one of the very early versions in a link in this thread a while back) But the engine was recently rewritten for a project of mine, and then updated even more recently to support all of the features it has now.

And thanks, I will definitely go add it into the archives ^^
Would you like me to host your files for direct download? MediaFire is full of ads and other crap.
Regardless, Zedd is very cool, it blows my physics engine out of the water (though I kinda deserve it given the complete lack of support for it).
You can host the Axe version (at least until 1.0.4 comes out) if you want, but I think I can just use the copy from the Cemetech archives for the download, and TiCalc once that uploads as well Smile

And thanks for that, your physics engine was the one that originally inspired my own. I'm glad I finally am managing to release what I started over a year ago ^^
Very nice demo in that screenshot. What algorithms do you use for collision solving, and how well could it handle, say, two moving blocks interacting with each other?
builderboy2005 wrote:
The engine itself is about 200 lines of Axe code, although half of that is including all of the special functions that help with usability. Zedd has been around as a concept for a while back. (I believe you even saw one of the very early versions in a link in this thread a while back) But the engine was recently rewritten for a project of mine, and then updated even more recently to support all of the features it has now.

And thanks, I will definitely go add it into the archives ^^
Only 200 lines? That seems exceedingly trivial for everything that it does, unless I'm missing something.
In my physics engine, a single line spanned 5 or 6 pages in the TI-Basic editor.
KermMartian wrote:
And thanks, I will definitely go add it into the archives ^^
Only 200 lines? That seems exceedingly trivial for everything that it does, unless I'm missing something.[/quote]

Though to be fair, it *isn't* 3d collision.
elfprince13 wrote:
Very nice demo in that screenshot. What algorithms do you use for collision solving, and how well could it handle, say, two moving blocks interacting with each other?


When an object A detects that its next position is going to result in a collision with object B, it modifies its own velocity, as well as B's velocity, taking into account the masses, sizes, and frictional constants of both of the objects. The main equation used is the equation for partially inelastic collisions, that takes into account masses to alter the velocities of the objects. And while it is not 3D physics, 3D would not be the factor that would inflate the size and slow it down; Rotation is what would make this engine a lot larger and more complicated. Every reason Zedd is fast is because of optimization that are possible because the objects don't rotate.


As for the size of the library, the Zedd engine itself is pretty small, but that was a necessity for getting it to run as fast as it does. Note, however, that things like the rope physics and the water physics are not part of the Zedd library, but are actually libraries that interface with Zedd. Zedd is only a collision solver, nothing more, and it takes some external libraries to handle the other force effects. Since Zedd works exclusively on forces and velocities, any library can simply modify the objects velocities, or apply forces, and the Zedd engine will compensate. This is what makes the libraries so simple to write, like the library that handles the buoyancy of the water is around 20 lines; the rope physics for the crane is about 40 lines.
Quote:
Rotation is what would make this engine a lot larger and more complicated. Every reason Zedd is fast is because of optimization that are possible because the objects don't rotate.

So in other words you are using Axis-Aligned Bounding Boxes?

builderboy2005 wrote:
When an object A detects that its next position is going to result in a collision with object B, it modifies its own velocity, as well as B's velocity


So do you scale all the bounding areas by v*dt + (a/2)*dt^2 and then check for overlaps?

Quote:
And while it is not 3D physics, 3D would not be the factor that would inflate the size and slow it down;

If you were allowing rotation it definitely would. Collision with arbitrarily oriented polygons is still much easier than collision with polyhedra or mesh-soup.


As for the size of the library, the Zedd engine itself is pretty small, but that was a necessity for getting it to run as fast as it does. Note, however, that things like the rope physics and the water physics are not part of the Zedd library, but are actually libraries that interface with Zedd. Zedd is only a collision solver, nothing more, and it takes some external libraries to handle the other force effects. Since Zedd works exclusively on forces and velocities, any library can simply modify the objects velocities, or apply forces, and the Zedd engine will compensate. This is what makes the libraries so simple to write, like the library that handles the buoyancy of the water is around 20 lines; the rope physics for the crane is about 40 lines.[/quote]
elfprince13 wrote:

So in other words you are using Axis-Aligned Bounding Boxes? So do you scale all the bounding areas by v*dt + (a/2)*dt^2 and then check for overlaps?


Not quite, the way I do it is I have each object move itself to the next position according to velocity, and if there is a collision I reverse the movement in the axis of the collision. I then adjust the velocity of the objects that collided and proceed to the next object to simulate.

elfprince13 wrote:

If you were allowing rotation it definitely would. Collision with arbitrarily oriented polygons is still much easier than collision with polyhedra or mesh-soup.


Detecting collision between arbitrary oriented polygons is not the issue, it's the transfer of momentum and rotational momentum that is the problem. Unlike fixed axis collisions, where faces always collide with other faces, collisions with rotation need a very exact point of collision in order to calculate the forces correctly. This requires binary searches and a lot more precision than I have with fixed point numbers. Changing this engine into a 3D engine that still doesn't use rotation would still be much faster than converting this to an 2D engine that does use rotation.
builderboy2005 wrote:

Not quite, the way I do it is I have each object move itself to the next position according to velocity, and if there is a collision I reverse the movement in the axis of the collision. I then adjust the velocity of the objects that collided and proceed to the next object to simulate.

Ah, so you've serialized your collision checks rather than trying to do everything in parallel. Makes sense =)

Quote:

Detecting collision between arbitrary oriented polygons is not the issue, it's the transfer of momentum and rotational momentum that is the problem. Unlike fixed axis collisions, where faces always collide with other faces, collisions with rotation need a very exact point of collision in order to calculate the forces correctly. This requires binary searches and a lot more precision than I have with fixed point numbers. Changing this engine into a 3D engine that still doesn't use rotation would still be much faster than converting this to an 2D engine that does use rotation.

Yes, but my initial assumption was that you were allowing for rotation and making a comparison of complexity between rotating systems in both 2d and 3d, rather than making an asymmetric comparison.
My comparison was merely to show that rotation is so difficult to accomplish that even converting the engine into 3D (without rotation) would be faster. Neither one is going to be added to Zedd in the foreseeable future anyway though, since displaying 3D is exceedingly slow, and I have not actually ever managed to get a 2D rotation engine working, even in Java.
Yay Zedd got featured! ;D Thanks to all the staff at TiCalc for featuring my program! And thanks to all you here for being awesome and supportive ^^

So I am already working on some bugs, issues, and upgrades for the next version, including more accurate friction and other helper functions. ^^
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement