OOmadness
[3] OOmadness / Soya3D
Soya3D : Bug report - Documentation - Download - FAQ - Features - History - Mailing list - Projects using Soya - Soya on Gna! - Soya's spirit - TODO - Troubleshooting - Tutorials - Wiki
Jiba
Soya 3D is an object oriented "high level" 3D engine for Python. Somehow, Soya is to 3D what Python is to programming: an 'avant garde' 3D engine, a kind of 'UFO' in the 3D world :-). Soya allows to develop very rapidly games of other 3D apps, entirely in the Python language (contrary to most of the other engine, in which Python is limited to scripting tasks).

Moreover, Soya is easy to learn and offers pretty good performances.

Soya is used successfully in 3D games, but also in demos, scientific simulations, or educational programs (see application using Soya for screenshots).

Soya offers the features one can expect from a 3D engine, like basic scene management, cell-shading, shadows, particles systems,... as well as some unique features aiming at making 3D development easier and more rapid (see Soya's feature).

Soya is Free Software, under the GNU GPL. Soya is written in Pyrex (a mix of C and Python) and in Python.

It requires :
Soya's developpers and users can be found on the #soya IRC channel of Freenode.
(add comment, add sub-topic, edit, archives, rss)
Jiba, 24/01/10
Soya 0.15rc1 is out !

Here is the Changelog :

* January 2009 : Soya3D 0.15rc1 * ODE 10 compatibility (required) * New collide property for lazer. * Quiet mode for soya initialisation and quit * New event management system. round event are now stored in main_loop.event and main_loop.raw_event. * New round_task attribut for main_loop. * Allow screenshot from backbuffer. * Allow to use WorldStep instead of WorldQuickStep for ODE iteration. * Allow None as angular_velocity, linear_velocity, torque, or force. * Allow None as hi_stop, lo_stop * Bugfixes * Fix delta_x and delta_y in coalesced event * Fix AngularMotorJoint API * soya initialisation now write in the common stdout and stderr * Fix font related segfault when soya wasn't initialised * Fix Pudding MainLoop (thanks David Martinez) * Work-around for OpenAL bug for absolute sound sources
Jiba, 30/08/08
The new version of Soya, 0.14, is out. Here is the complete changelog for 0.14:

* January 2008 : Soya3D 0.14rc1 * Allow the centre of mass of a Body to be anywhere in its local coordinate system (thanks Greg Ewing) * Improve tutorial README (thanks Jacques Rebourcier) * Update for Pyrex 0.9.6.2 (thanks Greg Ewing) * Blender => Cal3D can now run with Python 2.3 (thanks Greg Ewing) * New GUI module soya.gui * Bugfixes: * Fix the weird segfaulting bug in terrain (thanks Souvarine) * Fix GL_INVALID_ENUM crash with the OSS ATI DRI driver (thanks Zoltan Dome) * Fix data/worldS and data/blender in the yet-in * Fix speed-1.py tuto * Fog was activated by error on partial camera with no atmosphere * Fix descender computation in font * Fix ODE on terrain (tuto ode-collision-8-terrain.py)

* August 2008 : Soya3D 0.14 * Improved the cell-shading algorithm, by anti-aliasing outlines and disabling normal lighting when cell-shading is used * Bugfixes: * When re-starting a MainLoop, define it as the current MainLoop (aka. soya.MAIN_LOOP)
Jiba, 20/01/08
A new version of Soya, 0.14rc1, is out. This release includes many bugfixes and has been updated for latest release of Pyrex. It also includes a new GUI module called soya.gui (see the gui-* tutos for demo).

Here is the complete changelog:

* January 2008 : Soya3D 0.14rc1 * Allow the centre of mass of a Body to be anywhere in its local coordinate system (thanks Greg Ewing) * Improve tutorial README (thanks Jacques Rebourcier) * Update for Pyrex 0.9.6.2 (thanks Greg Ewing) * Blender => Cal3D can now run with Python 2.3 (thanks Greg Ewing) * New GUI module soya.gui * Bugfixes: * Fix the weird segfaulting bug in terrain (thanks Souvarine) * Fix GL_INVALID_ENUM crash with the OSS ATI DRI driver (thanks Zoltan Dome) * Fix data/worldS and data/blender in the yet-in * Fix speed-1.py tuto * Fog was activated by error on partial camera with no atmosphere * Fix descender computation in font * Fix ODE on terrain (tuto ode-collision-8-terrain.py)
Jiba, 11/11/07
I'm currently working on a new widget system for Soya.

It will feature advanced widgets such as scroll panes or flying windows, as well as a nice automatic dimensioning system, even better than GTK and Tk ones !

For now, I'm focusing on the widget's logic, and not on their graphical aspect.

The final goal being to add Soya's support to EditObj 2, in order to be able to generate dialog boxes in Soya for editing various game objects. Can be usefull for game editor but also for many complex games (roleplaying games, strategy games,...). I'm precisely thinking about new game projects in that area.

Here are some screenshots using various styles :

Jiba, 24/01/07
[130] Soya 0.13
Here is the final release of Soya 0.13 !

It is the first version that includes the works of our two Google Summer of Code student, Marmoute and Palle. I've also integrated the soya guide (the "Yet-in") in the tutorial pack (since i've changed the licence to FDL without invariant, there is no longer any problem with reguard to Debian).

Changelog :
  • New ODE integration (thanks Marmoute!)
  • New Blender -> Cal3D exporter (thanks Palle!) The new exporter is now automatically used by the auto-exporter. It REQUIRES Blender >= 2.42
  • BSP system (work in progress, thanks Souvarine!)
  • CoordSyst.solid is no longer boolean, but a 32-bit-length bitfield (thanks Souvarine!)
  • Add RaypickContext.get_item() (thanks Souvarine)
  • Better font loading under MacOS X (thanks Greg Ewing)
  • Tofu integrated
  • CoordSystSpeed added
  • CoordSystState now support automatic coordinate system conversion (when used with interpolate()), and has a convert_to() method
  • Bugfixes:
    • Fixes crash on keycodes > 255, and allows Delete as well as Backspace for erasing characters, in pudding (thanks Greg Ewing)
    • Severals memory leaks have been fixed (in particular on Terrains and CoordSystStates)
    • soya.widget.default_font can now be saved as any other fonts
    • Mesh deformation were buged on cellshaded models
    • Compile with -fsigned-char because on Mac, chars are by default unsigned
    • The file caching neighbors was not cleaned when animated models were modifed
Jiba, 12/12/06
Soya 0.13rc1 is out. It is the first version that includes the works of our two Google Summer of Code student, Marmoute and Palle. The soya guide (the "yet-in") is now integrated in the tutorial pack.

Here is the changelog:
  • New ODE integration (thanks Marmoute!)
  • New Blender -> Cal3D exporter (thanks Palle!) The new exporter is now automatically used by the auto-exporter. It REQUIRES Blender >= 2.42
  • BSP system (work in progress, thanks Souvarine!)
  • CoordSyst.solid is no longer boolean, but a 32-bit-length bitfield (thanks Souvarine!)
  • Add RaypickContext.get_item() (thanks Souvarine)
  • Better font loading under MacOS X (thanks Greg Ewing)
  • CoordSystSpeed added
  • CoordSystState now support automatic coordinate system conversion (when used with interpolate()), and has a convert_to() method
  • Bugfixes:
    • Fixes crash on keycodes > 255, and allows Delete as well as Backspace for erasing characters, in pudding (thanks Greg Ewing)
    • Severals memory leaks have been fixed (in particular on Terrains and CoordSystStates)
    • soya.widget.default_font can now be saved as any other fonts
    • Mesh deformation were buged on cellshaded models
    • Compile with -fsigned-char because on Mac, chars are by default unsigned
    • The file caching neighbors was not cleaned when animated models were modifed
Jiba, 19/07/06
This new version proposes a new sound API, a new automatic system for optimizing static object, a not-yet-stable mesh deforming API, as well as many other minor additions. It also renames many Soya objects that were having weird names; they have been renamed to more comprehensive names (however, backward-compatibility is fully ensured).
Jiba, 11/06/06
This version fix some indent errors in 3DS max and OBJ/MTL exporter scripts, and some troubles in rotation method of CoordSystState objects.
Jiba, 11/06/06
This release allows to use Cerealizer instead of cPickle (voir les tutoriels basic-savingfile-* et basic-loadingfile-*). Contrary to Pickle, Cerealizer is safe, which is useful for network game! The release also add a listbox widget to Pudding (thanks Reto :-). "rotate_x", "rotate_y", "rotate_z" aliases have been added to the "rotate_lateral", "rotate_vertical" and "rotate_incline" methods.

Finally, there are several bugfixes on shadows, cellshading and raypicking on Cal3D models.
Jiba, 08/06/06
[-] Fork!
Following some agitated discussions, Arc Riley has decided to fork Soya3D into Py-Soy, and to retain the rights to the soya3d.org domain, against the will of the Soya3D developers and users. Despite allegations to the contrary by Arc and his soya3d.org placeholder, it seems that his action is isolated, rather than a concerted move by many.

The developers who have contributed code to the project, the packagers for the various distros Soya3D supports, and most of the users and enthusiasts we've had a chance to chat with have not followed this fork, and disagree with Arc's reasons for going solo.

More information are available on the Soya's mailing list. Soya developement will continue in the usual direction: rapid development, ease of use and learning,...