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.
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
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)
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)
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 :
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
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
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).
This version fix some indent errors in 3DS max and OBJ/MTL exporter scripts,
and some troubles in rotation method of CoordSystState objects.
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.
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,...