EPhysics has been vastly improved since it reached E project’s repository, a few months ago. Most of the road map was implemented, including the release of a game based on it, Escape From Booty Bay. It means EPhysics now support soft bodies and cloths, uses threads, works with the concept of Camera, has helpers to make it easier to use, has a sandbox tool to test scenes without coding and even supports 3D scenes somehow. Details are presented below with screenshots and video.
Perspective: Applying perspective to the camera allows developers to create more realistic scenes, setting the “infinite distance” point and focal distance.
Light: It’s possible to set an environment light and a light point, that can be moved around. Light colors can be changed as well, producing really interesting effects. Bodies that should be affected by light can be configured by the user.
It is simple, having some limitations worth mentioning: it doesn’t support light absorption, refraction or reflection and bodies don’t make shadows over others.
Primitive types faces: Instead of just setting an Evas Object to each body, support to setting objects for each face of the primitive types was implemented. So you can have different objects in each one of the six faces of a cube.
A soft body will deform when colliding with other bodies and when suffering specific types of impulse, handling with its mesh. Its hardness and bending constraints can be set to simulate different materials.
Have you always wanted to have a soft button in your software interface that deforms depending where the user press it ?
OK, now it’s possible.
A cloth is a kind of deformable open mesh. It can be used to make objects act like pages or flags.
Sandbox is a tool to make it possible to test how bodies will interact under specific conditions. So it’s possible to modify world and bodies attributes easily, set velocities, apply impulses, forces and see how they interact without a single line of code. Sometimes fine tuning physics scenes is harder, and tools like that should avoid time spent in many “small code changes, build and test” cycles.
Marina Proni helped designing this tool, and she has posted about its development under a designer point of view. Article in Brazilian Portuguese.
A camera defines the region of the physics world that will be rendered on the canvas. It sets the point of view. Can be set to follow a specific body or apply custom perspective.
Many helpers were added, so instead of setting body’s mass, for example, it’s possible to set its density, or even its material, so properties like density, restitution and friction will be set considering default values. Many default values are exposed as well to make developers life easier.
Documentation was heavily improved, with the entire API covered, and many explained examples. A nightly build is now accessible on Enlightenment project site.
We are currently focusing on make its API stable to be released in 1.8 cycle, fixing bugs, and discussing a proposal to support physics on Edje in e-devel mails list.
p.s.: This post is dedicated to David Seikel, always following the development of EPhysics.