From Berkman Klein Google Summer of Code Wiki
Jump to navigation Jump to search

We are looking for help in the following Sirikata based projects:

a) Client side phyiscs. To make the world look smooth and allow interesting dynamics, client side prediction using physics is key to the sirikata infrastructure. The first step would be to get rudimentary collision detection working, so that objects can learn about other colliding objects and can have their scripts listen for collisions and move away from them. A second goal would be rigid body dynamics that would actually apply the necessary forces to keep objects apart

b) Avatar design. Currently research papers like provide mechanisms to design avatars from parameters. Sirikata needs a mechanism to produce textured, high quality, skinned avatars from within javascript using a set of parameters supplied interactively by a user. Both a module to select the parameters and a module to create an in-memory representation of the mesh from the parameters are required

c) 3D Engine rewrite: Our current engine is GLGE, which has a number of advantages. However, we would much prefer to use a more performant engine designed from the ground up with javascript speed in mind rather than ease of use. This includes mechanisms to combine static meshes into a single draw call, mechanisms to sort by state usage, keep models in an acceleration structure, etc. This project has the largest leeway in creativity but also the largest overhead in terms of getting to a usable state. We have a clearly defined API to which this engine must conform:

d) Creature design. Much of the research on parameterized avatars has avoided multilegged animating creatures. We would like to popular our virtual world with all manner of interesting life forms. Having a similar parametric system to describe those creatures is both a research problem as well as an implementation problem and is a more free form project than b) above