Differences between revisions 1 and 63 (spanning 62 versions)
Revision 1 as of 2004-03-12 22:05:15
Size: 960
Editor: sololess
Comment:
Revision 63 as of 2004-04-07 23:40:18
Size: 12738
Editor: sololess
Comment: added ProScena Studio
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Many applicatiions that are written in another programming language such as C/C++ support Python for scripting. This page is for highlighting those commercial and Open Source applications. This page is not for listing those applications primarily built with Python. Applications can and are written in Python, but people are slow to change, so the vast majority are still done using C/C++ on Linux and Windows and a combination of C++ and Objective-C on Mac OS X. I've noticed a growing trend of using Python to provide user automation or scripting, sometimes called macros, for C/C++ applications. This makes a lot of sense:
Line 3: Line 3:
If you have anything to contribute, don't hesitate to edit this page.  * developers don't have to waste time and money inventing their own scripting language and users don't have to learn a new automation language for every application they use
 * Python is an OpenSource solution and can be embedded and distributed for free so there are no royalty payments or licensing hassles
 * Python is simple to learn, yet Python and its standard libraries are much more powerful than a proprietary language like VBScript
 * Python is cross-platform
 * [#head-3 tools] like ["Pyrex"] and BoostPython make it easy to expose part or all of the application programming interface (API)
 * Python scripting can be added to legacy projects just as well as new ones so developers don't have to abandon their old C/C++ code libraries
 * On the Windows platform, Python has an excellent interface to COM (also known as ActiveX) and can be used to interface to almost any COM program (such as the MS-Office suite). Again, Python scripting can be added to enhance a project without change to the existing COM components. (See Win32All)
 * [http://pyobjc.sourceforge.net PyObjC] can be used to add scripting to any Cocoa app on Mac OS X
 * Many Mac OS applications provide Apple event-based scripting interfaces, allowing them to be controlled from languages such as [http://www.apple.com/applescript/ AppleScript], [http://www.latenightsw.com/freeware/JavaScriptOSA/ JavaScript OSA], Perl (via [http://search.cpan.org/~cnandor/Mac-Glue/ Mac::Glue]), Python (via [http://freespace.virgin.net/hamish.sanderson/appscript.html appscript]), Tcl and UserTalk. (See MacPython)

For many of the same reasons, Python is often used as the "glue" language for a project. In the Java world, people are using ["Jython"] as the glue and scripting language.
Line 7: Line 17:
(!) '''This page is not for listing those applications primarily built with Python. Try PythonSoftware for those types of apps, tools, and frameworks.'''
Line 9: Line 21:
=== Applications === === Applications and Toolkits ===
Line 11: Line 23:
|| '''Name''' || '''Platform''' || '''Notes''' ||
|| [http://mahogany.sourceforge.net/ Mahogany] || Linux, Mac OS X, Windows || Mahogany is an OpenSource cross-platform mail and news client. ||
||<30%> '''Name''' ||<15%> '''Platform''' ||<55%> '''Notes''' ||
|| [http://www.abaqus.com/ Abaqus] || multi-platform || Finite element analysis, modeling, and visualization. Python is embedded for command scripting and GUI extensibility. ||
|| [http://www.blender.org/ Blender] || multi-platform || OpenSource software for 3D modeling, animation, rendering, post-production, interactive creation and playback. [http://www.blender.org/modules/documentation/228PythonDoc/ Blender Python API reference] ||
|| ClearSilver || multi-platform || Web application framework ||
|| [http://crystal.sourceforge.net/ Crystal Space] || multi-platform || OpenSource 3D SDK ||
|| [http://www.fontlab.com/ FontLab] || Windows, Mac OS || Commercial font editing software, uses Python as a macro language. ||
|| [http://www.gimp.org/ GIMP] || multi-platform, GTK || GNU Image Manipulation Program. [http://www.daa.com.au/~james/software/pygimp/ PyGimp] is a package that allows people to write plug-ins for Gimp on Python rather than Script-Fu (Scheme), Perl, Tcl or C. ||
|| [http://gxsm.sourceforge.net/ GXSM] || Linux, Mac OS X || Gnome X Scanning Microscopy - multi-channel 2D/3D data acquisition and visualization ||
|| [https://helixcommunity.org/ Helix DNA] || multi-platform || The Helix community is a collaborative effort among real, independent developers, and leading companies to extend the Helix DNA™ platform, the first open multi-format platform for digital media creation, delivery and playback. ||
|| [http://kahakai.sourceforge.net/ Kahakai Window Manager] || POSIX, KDE and GNOME || Python is used for event and key binding configuration. ||
|| [http://www.kaydara.com/products/motionbuilder/ Kaydara Motionbuilder] || Mac OS X, Windows || Helpful for integrating into production pipelines and allows users to automate repetitive processes. ||
|| [http://mahogany.sourceforge.net/ Mahogany] || Linux, Mac OS X, Windows || OpenSource cross-platform mail and news client. ||
|| [http://www.mindlathe.com/ MindLathe] || ? || AI middleware ||
|| [http://nsis.sourceforge.net/ NSIS2] || Windows || There is an [http://homepage.hispeed.ch/py430/python/ NSIS Python Plugin] for this OpenSource installer for Windows. ||
|| [http://www.ogre3d.org/ OGRE] || multi-platform || Object-Oriented Rendering Engine ||
|| [http://oss.sgi.com/projects/inventor/ Open Inventor] || multi-platform || Object-oriented 3D toolkit. [http://pivy.tammura.at/ Pivy] is the Python binding for Open Inventor. Check out the [http://www.python.org/pycon/dc2004/papers/47/pycon-pivy-paper.html Pycon paper on Pivy]. ||
|| [http://www.openoffice.org/ OpenOffice] || multi-platform || [http://udk.openoffice.org/python/python-bridge.html Python-UNO bridge] for scripting OpenOffice with Python ||
|| Office and Outlook || Windows || While Microsoft Office apps including Microsoft Outlook were not originally designed to be scripted with Python, [http://starship.python.net/crew/mhammond/win32/Downloads.html pywin32] (formerly Win32All) makes it possible to script Microsoft Office apps and build plug-ins. Of special note is the [http://spambayes.sourceforge.net/windows.html SpamBayes] plug-in for Outlook which enables any Outlook user to use [http://spambayes.sourceforge.net/windows.html SpamBayes] without even knowing anything about Python. ||
|| [http://magix.fri.uni-lj.si/orange/ Orange] || multi-platform || Orange is a component-based data mining software. It includes a range of preprocessing, modelling and data exploration techniques. It is based on C++ components, that are accessed either directly (not very common), through Python scripts (easier and better), or through GUI objects called Orange Widgets. ||
|| [http://www.jasc.com/products/paintshoppro/ Paint Shop Pro 8] || Windows || Photo and graphics editor. [http://www.jasc.com/support/customercare/articles/psp8components.asp PSP scripting resources] ||
|| [http://www.etc.cmu.edu/panda3d/ Panda3D] || multi-platform || Open Source game and simulation engine. Disney is one of the notable users. Check out the [http://www.python.org/pycon/dc2004/papers/29/Panda3D.htm PyCon paper on Panda3d]. ||
|| [http://www.curiouslabs.com/ Poser] || Windows and Mac OS X || 3D character animation tool ||
|| ProScena Studio || || A high-level content-authoring system and runtime for creating real-time interactive 3D simulations for training, education and gaming applications. [http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=SVBIZINK8.story&STORY=/www/story/03-25-2004/0002134657 press release] ||
|| [http://www.froglogic.com/squish Squish] || multi-platform || An automated GUI testing framework for Qt applications that supports Python scripting ||
|| [http://subversion.tigris.org/ Subversion] || multi-platform || A compelling replacement for CVS. See the [http://subversion.tigris.org/project_links.html Project Links], [http://subversion.tigris.org/bindings.html Bindings] or do a [http://www.google.com/search?&q=site:subversion%2Etigris%2Eorg+python Google site search]. ||
|| [http://netdragon.sourceforge.net SuperKaramba] || Linux, KDE || SuperKaramba allows you to create cool dekstop widgets with little to no programming experience. It's similar to "Konfabulator" for the Mac. ||
|| [http://www.caligari.com/ truSpace] || Windows || 3D modelling/animation package ||
|| [http://www.vim.org/ Vim] || multi-platform || editor ||
|| [http://www.wincvs.org/ WinCvs] || Windows || GUI front-end for CVS ||
|| [http://www.xchat.org/ XChat] || multi-platform || IRC Client ||
Line 16: Line 57:
|| '''Name''' || '''Platform''' || '''Notes''' ||
|| [http://www.myfreedomforce.com/ Freedom Force] || Windows || [http://www.google.com/search?q=freedom+force+python Google link] ||
||<30%> '''Name''' ||<15%> '''Platform''' ||<55%> '''Notes''' ||
|| [http://www.funkidsgames.com/games/byhockey_pc/ Backyard Hockey] || Windows || ||
|| [http://www.bigworldtech.com/ BigWorld] || Windows || Complete MMOG tool set. The [http://www.bigworldtech.com/faq.php FAQ], [http://www.bigworldtech.com/client/client_object_scripting.htm Client Engine] and [http://www.bigworldtech.com/server/server_custom_worlds.htm Server Engine] pages highlight how Python is integrated. ||
|| [http://www.codemasters.com/blade/ Blade of Darkness] || Windows || ||
|| [http://butterfly.net/ Butterfly.net] || multi-platform || "The scalable, reliable and high performance online game platform." Uses Python for advanced interactions between players and non-player characters ||
|| Cars with Guns || Windows || ||
|| [http://www.earthandbeyond.ea.com/ Earth & Beyond] || Windows || ||
|| [http://www.eve-online.com/ Eve-Online] || Windows || Uses StacklessPython for client and server. Description from the web site - EVE: The Second Genesis, is a massively multiplayer, online, persistent world game. perhaps even too real to be called a game, but definitely more fun than reality. Played on the Net, it takes place in a world that is alive and kicking every day, every hour. Players are spaceship captains cruising around the universe, trading, fighting and communicating with other players. ||
|| [http://www.irrationalgames.com/ff/ Freedom Force] || Windows || http://www.google.com/search?q=Freedom+Force+Python ||
|| [http://www.gamerankings.com/htmlpages2/516506.asp Frequency] || PS2 || ||
|| SpongeBob Squarepants || PS2 and GameCube || See Jason's [http://www.asbahr.com/papers.html paper] on the Python-based scripting system. ||
|| [http://www.bridgecommander.com/ Star Trek Bridge Commander] || Windows || ||
|| [http://play.toontown.com/ Toontown Online] || Windows || MMORPG. [http://www.gamasutra.com/features/20040128/goslin_01.shtml Postmortem: Disney Online's Toontown] on Gamasutra. Also see info on Panda3D above. ||
|| [http://uru.ubi.com/us/ Uru: Ages Beyond Myst] || Windows || ||
|| [http://vegastrike.sourceforge.net/ Vega Strike] || Linux, Mac, Windows || 3D OpenGL Action Space Sim ||
Line 19: Line 73:
[[Anchor(head-3)]]
=== Tools For Integrating Python ===
Line 20: Line 76:
=== Other Resources ===  * ["Pyrex"]
 * [http://www.swig.org/ SWIG] (Wiki:SimplifiedWrapperAndInterfaceGenerator)
 * BoostPython and [http://www.boost.org/libs/python/doc/index.html Boost.Python] (official page)
 * [http://pyobjc.sourceforge.net PyObjC] (Mac OS X)
 * [http://www.riverbankcomputing.co.uk/sip/index.php SIP]
Line 22: Line 82:
  * PythonEditors === Articles ===

 * [http://www.idevnews.com/TipsTricks.asp?ID=107 Devs Using Python to Boost Integration] - In this two-part interview, Martelli offers Win32, Java and .NET devs some useful perspectives on Python, and how Python scripting can extend the integration capabilities of their Win32, ASP.Net, Java and C/C++ applications.
 * Embedding Python in Multi-Threaded C/C++ Applications in [http://www.linuxjournal.com/article.php?sid=3641 LinuxJournal]
 * Building Hybrid Systems with Boost.Python in [http://www.cuj.com/documents/s=8188/cuj0307abrahams/ C/C++ User Journal]
 * [http://dales.rmplc.co.uk/Duncan/accu/integratingpython.html Integrating Python, C and C++], presented at the ACCU conference by Duncan Booth, and his [http://dales.rmplc.co.uk/Duncan/accu conference slides]

=== Other Resources (many apps from pages below need to be copied to this page) ===

 * PythonEditors
 * [http://www.python.org/community/users.html Organizations and Apps using Python]
 * http://www.thinkware.se/cgi-bin/thinki.cgi/PythonUsers
 * [http://www.cygnus-software.com/papers/gamescriptinginpython.html Game Scripting in Python]
 * [http://www.onlamp.com/pub/a/python/2002/07/11/pythonnews.html Humongous Games]
 * IntegratingPythonWithOtherLanguages

=== Additional Notes ===

After adding Panda3D and Open Inventor I've started to wonder whether those really qualify as apps the way I originally envisioned this list? Perhaps we should have a separate page for C/C++ libraries, frameworks, etc. that have Python bindings? That would include frameworks like GTK, QT, and WxWidgets which have popular Python bindings. Regardless, all the Python bindings available for popular C/C++ tools and frameworks shows the agility of Python. There are great benefits to adding Python bindings to existing C/C++ (and Java) code bases so that you can leverage the power and flexibility of Python without abandoning an existing code base or giving up the speed of C/C++ code. In these cases, Python is a complement rather than a complete replacement for another programming language. -- KevinAltis

Applications can and are written in Python, but people are slow to change, so the vast majority are still done using C/C++ on Linux and Windows and a combination of C++ and Objective-C on Mac OS X. I've noticed a growing trend of using Python to provide user automation or scripting, sometimes called macros, for C/C++ applications. This makes a lot of sense:

  • developers don't have to waste time and money inventing their own scripting language and users don't have to learn a new automation language for every application they use
  • Python is an OpenSource solution and can be embedded and distributed for free so there are no royalty payments or licensing hassles

  • Python is simple to learn, yet Python and its standard libraries are much more powerful than a proprietary language like VBScript
  • Python is cross-platform
  • [#head-3 tools] like ["Pyrex"] and BoostPython make it easy to expose part or all of the application programming interface (API)

  • Python scripting can be added to legacy projects just as well as new ones so developers don't have to abandon their old C/C++ code libraries
  • On the Windows platform, Python has an excellent interface to COM (also known as ActiveX) and can be used to interface to almost any COM program (such as the MS-Office suite). Again, Python scripting can be added to enhance a project without change to the existing COM components. (See Win32All)

  • [http://pyobjc.sourceforge.net PyObjC] can be used to add scripting to any Cocoa app on Mac OS X

  • Many Mac OS applications provide Apple event-based scripting interfaces, allowing them to be controlled from languages such as [http://www.apple.com/applescript/ AppleScript], [http://www.latenightsw.com/freeware/JavaScriptOSA/ JavaScript OSA], Perl (via [http://search.cpan.org/~cnandor/Mac-Glue/ Mac::Glue]), Python (via [http://freespace.virgin.net/hamish.sanderson/appscript.html appscript]), Tcl and UserTalk. (See MacPython)

For many of the same reasons, Python is often used as the "glue" language for a project. In the Java world, people are using ["Jython"] as the glue and scripting language.

TableOfContents

(!) This page is not for listing those applications primarily built with Python. Try PythonSoftware for those types of apps, tools, and frameworks.

(!) Please keep wiki links as wiki links, use external links only if there is no existing page for the program.

Applications and Toolkits

Name

Platform

Notes

[http://www.abaqus.com/ Abaqus]

multi-platform

Finite element analysis, modeling, and visualization. Python is embedded for command scripting and GUI extensibility.

[http://www.blender.org/ Blender]

multi-platform

OpenSource software for 3D modeling, animation, rendering, post-production, interactive creation and playback. [http://www.blender.org/modules/documentation/228PythonDoc/ Blender Python API reference]

ClearSilver

multi-platform

Web application framework

[http://crystal.sourceforge.net/ Crystal Space]

multi-platform

OpenSource 3D SDK

[http://www.fontlab.com/ FontLab]

Windows, Mac OS

Commercial font editing software, uses Python as a macro language.

[http://www.gimp.org/ GIMP]

multi-platform, GTK

GNU Image Manipulation Program. [http://www.daa.com.au/~james/software/pygimp/ PyGimp] is a package that allows people to write plug-ins for Gimp on Python rather than Script-Fu (Scheme), Perl, Tcl or C.

[http://gxsm.sourceforge.net/ GXSM]

Linux, Mac OS X

Gnome X Scanning Microscopy - multi-channel 2D/3D data acquisition and visualization

[https://helixcommunity.org/ Helix DNA]

multi-platform

The Helix community is a collaborative effort among real, independent developers, and leading companies to extend the Helix DNA™ platform, the first open multi-format platform for digital media creation, delivery and playback.

[http://kahakai.sourceforge.net/ Kahakai Window Manager]

POSIX, KDE and GNOME

Python is used for event and key binding configuration.

[http://www.kaydara.com/products/motionbuilder/ Kaydara Motionbuilder]

Mac OS X, Windows

Helpful for integrating into production pipelines and allows users to automate repetitive processes.

[http://mahogany.sourceforge.net/ Mahogany]

Linux, Mac OS X, Windows

OpenSource cross-platform mail and news client.

[http://www.mindlathe.com/ MindLathe]

?

AI middleware

[http://nsis.sourceforge.net/ NSIS2]

Windows

There is an [http://homepage.hispeed.ch/py430/python/ NSIS Python Plugin] for this OpenSource installer for Windows.

[http://www.ogre3d.org/ OGRE]

multi-platform

Object-Oriented Rendering Engine

[http://oss.sgi.com/projects/inventor/ Open Inventor]

multi-platform

Object-oriented 3D toolkit. [http://pivy.tammura.at/ Pivy] is the Python binding for Open Inventor. Check out the [http://www.python.org/pycon/dc2004/papers/47/pycon-pivy-paper.html Pycon paper on Pivy].

[http://www.openoffice.org/ OpenOffice]

multi-platform

[http://udk.openoffice.org/python/python-bridge.html Python-UNO bridge] for scripting OpenOffice with Python

Office and Outlook

Windows

While Microsoft Office apps including Microsoft Outlook were not originally designed to be scripted with Python, [http://starship.python.net/crew/mhammond/win32/Downloads.html pywin32] (formerly Win32All) makes it possible to script Microsoft Office apps and build plug-ins. Of special note is the [http://spambayes.sourceforge.net/windows.html SpamBayes] plug-in for Outlook which enables any Outlook user to use [http://spambayes.sourceforge.net/windows.html SpamBayes] without even knowing anything about Python.

[http://magix.fri.uni-lj.si/orange/ Orange]

multi-platform

Orange is a component-based data mining software. It includes a range of preprocessing, modelling and data exploration techniques. It is based on C++ components, that are accessed either directly (not very common), through Python scripts (easier and better), or through GUI objects called Orange Widgets.

[http://www.jasc.com/products/paintshoppro/ Paint Shop Pro 8]

Windows

Photo and graphics editor. [http://www.jasc.com/support/customercare/articles/psp8components.asp PSP scripting resources]

[http://www.etc.cmu.edu/panda3d/ Panda3D]

multi-platform

Open Source game and simulation engine. Disney is one of the notable users. Check out the [http://www.python.org/pycon/dc2004/papers/29/Panda3D.htm PyCon paper on Panda3d].

[http://www.curiouslabs.com/ Poser]

Windows and Mac OS X

3D character animation tool

ProScena Studio

A high-level content-authoring system and runtime for creating real-time interactive 3D simulations for training, education and gaming applications. [http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=SVBIZINK8.story&STORY=/www/story/03-25-2004/0002134657 press release]

[http://www.froglogic.com/squish Squish]

multi-platform

An automated GUI testing framework for Qt applications that supports Python scripting

[http://subversion.tigris.org/ Subversion]

multi-platform

A compelling replacement for CVS. See the [http://subversion.tigris.org/project_links.html Project Links], [http://subversion.tigris.org/bindings.html Bindings] or do a [http://www.google.com/search?&q=site:subversion%2Etigris%2Eorg+python Google site search].

[http://netdragon.sourceforge.net SuperKaramba]

Linux, KDE

SuperKaramba allows you to create cool dekstop widgets with little to no programming experience. It's similar to "Konfabulator" for the Mac.

[http://www.caligari.com/ truSpace]

Windows

3D modelling/animation package

[http://www.vim.org/ Vim]

multi-platform

editor

[http://www.wincvs.org/ WinCvs]

Windows

GUI front-end for CVS

[http://www.xchat.org/ XChat]

multi-platform

IRC Client

Games

Name

Platform

Notes

[http://www.funkidsgames.com/games/byhockey_pc/ Backyard Hockey]

Windows

[http://www.bigworldtech.com/ BigWorld]

Windows

Complete MMOG tool set. The [http://www.bigworldtech.com/faq.php FAQ], [http://www.bigworldtech.com/client/client_object_scripting.htm Client Engine] and [http://www.bigworldtech.com/server/server_custom_worlds.htm Server Engine] pages highlight how Python is integrated.

[http://www.codemasters.com/blade/ Blade of Darkness]

Windows

[http://butterfly.net/ Butterfly.net]

multi-platform

"The scalable, reliable and high performance online game platform." Uses Python for advanced interactions between players and non-player characters

Cars with Guns

Windows

[http://www.earthandbeyond.ea.com/ Earth & Beyond]

Windows

[http://www.eve-online.com/ Eve-Online]

Windows

Uses StacklessPython for client and server. Description from the web site - EVE: The Second Genesis, is a massively multiplayer, online, persistent world game. perhaps even too real to be called a game, but definitely more fun than reality. Played on the Net, it takes place in a world that is alive and kicking every day, every hour. Players are spaceship captains cruising around the universe, trading, fighting and communicating with other players.

[http://www.irrationalgames.com/ff/ Freedom Force]

Windows

http://www.google.com/search?q=Freedom+Force+Python

[http://www.gamerankings.com/htmlpages2/516506.asp Frequency]

PS2

SpongeBob Squarepants

PS2 and GameCube

See Jason's [http://www.asbahr.com/papers.html paper] on the Python-based scripting system.

[http://www.bridgecommander.com/ Star Trek Bridge Commander]

Windows

[http://play.toontown.com/ Toontown Online]

Windows

MMORPG. [http://www.gamasutra.com/features/20040128/goslin_01.shtml Postmortem: Disney Online's Toontown] on Gamasutra. Also see info on Panda3D above.

[http://uru.ubi.com/us/ Uru: Ages Beyond Myst]

Windows

[http://vegastrike.sourceforge.net/ Vega Strike]

Linux, Mac, Windows

3D OpenGL Action Space Sim

Anchor(head-3)

Tools For Integrating Python

Articles

Other Resources (many apps from pages below need to be copied to this page)

Additional Notes

After adding Panda3D and Open Inventor I've started to wonder whether those really qualify as apps the way I originally envisioned this list? Perhaps we should have a separate page for C/C++ libraries, frameworks, etc. that have Python bindings? That would include frameworks like GTK, QT, and WxWidgets which have popular Python bindings. Regardless, all the Python bindings available for popular C/C++ tools and frameworks shows the agility of Python. There are great benefits to adding Python bindings to existing C/C++ (and Java) code bases so that you can leverage the power and flexibility of Python without abandoning an existing code base or giving up the speed of C/C++ code. In these cases, Python is a complement rather than a complete replacement for another programming language. -- KevinAltis

AppsWithPythonScripting (last edited 2019-07-05 23:27:31 by JaraKaca)

Unable to edit the page? See the FrontPage for instructions.