| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | |
| <!-- Copyright David Abrahams 2006. Distributed under the Boost --> | |
| <!-- Software License, Version 1.0. (See accompanying --> | |
| <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> | |
| <html> | |
| <head> | |
| <meta name="generator" content= | |
| "HTML Tidy for Cygwin (vers 1st September 2004), see www.w3.org"> | |
| <meta http-equiv="Content-Type" content="text/html"> | |
| <link rel="stylesheet" type="text/css" href="boost.css"> | |
| <title>Boost.Python - Projects using Boost.Python</title> | |
| </head> | |
| <body link="#0000FF" vlink="#800080"> | |
| <table border="0" cellpadding="7" cellspacing="0" width="100%" summary= | |
| "header"> | |
| <tr> | |
| <td valign="top" width="300"> | |
| <h3><a href="../../../index.htm"><img height="86" width="277" alt= | |
| "C++ Boost" src="../../../boost.png" border="0"></a></h3> | |
| </td> | |
| <td valign="top"> | |
| <h1 align="center"><a href="index.html">Boost.Python</a></h1> | |
| <h2 align="center">Projects using Boost.Python</h2> | |
| </td> | |
| </tr> | |
| </table> | |
| <hr> | |
| <h2>Introduction</h2> | |
| <p>This is a partial list of projects using Boost.Python. If you are using | |
| Boost.Python as your Python/C++ binding solution, we'd be proud to list | |
| your project on this page. Just <a href= | |
| "mailto:c++-sig@python.org">post</a> a short description of your project | |
| and how Boost.Python helps you get the job done, and we'll add it to this | |
| page .</p> | |
| <hr> | |
| <h3>Data Analysis</h3> | |
| <dl class="page-index"> | |
| <dt><b><a href="http://www.neuralynx.com">NeuraLab</a></b></dt> | |
| <dd>Neuralab is a data analysis environment specifically tailored for | |
| neural data from <a href="http://www.neuralynx.com">Neuralynx</a> | |
| acquisition systems. Neuralab combines presentation quality graphics, a | |
| numerical analysis library, and the <a href= | |
| "http://www.python.org">Python</a> scripting engine in a single | |
| application. With Neuralab, Neuralynx users can perform common analysis | |
| tasks with just a few mouse clicks. More advanced users can create custom | |
| Python scripts, which can optionally be assigned to menus and mouse | |
| clicks.</dd> | |
| </dl> | |
| <dl class="page-index"> | |
| <dt><b>TSLib</b> - <a href="http://www.fortressinv.com">Fortress | |
| Investment Group LLC</a></dt> | |
| <dd> | |
| Fortress Investment Group has contracted <a href= | |
| "http://www.boost-consulting.com">Boost Consulting</a> to develop core | |
| internal financial analysis tools in C++ and to prepare Python bindings | |
| for them using Boost.Python. | |
| <p>Tom Barket of Fortress writes:</p> | |
| <blockquote> | |
| We have a large C++ analytical library specialized for research in | |
| finance and economics, built for speed and mission critical | |
| stability. Yet Python offers us the flexibility to test out new ideas | |
| quickly and increase the productivity of our time versus working in | |
| C++. There are several key features which make Python stand out. Its | |
| elegance, stability, and breadth of resources on the web are all | |
| valuable, but the most important is its extensibility, due to its | |
| open source transparency. Boost.Python makes Python extensibility | |
| extremely simple and straightforward, yet preserves a great deal of | |
| power and control. | |
| </blockquote> | |
| </dd> | |
| </dl> | |
| <h3>Educational</h3> | |
| <dl class="page-index"> | |
| <dt><a href="http://edu.kde.org/kig"><b>Kig</b></a></dt> | |
| <dd> | |
| <p>KDE Interactive Geometry is a high-school level educational tool, | |
| built for the KDE desktop. It is a nice tool to let students work with | |
| geometrical constructions. It is meant to be the most intuitive, yet | |
| featureful application of its kind.</p> | |
| <p>Versions after 0.6.x (will) support objects built by the user | |
| himself in the Python language. The exporting of the relevant internal | |
| API's were done using Boost.Python, which made the process very | |
| easy.</p> | |
| </dd> | |
| </dl> | |
| <h3>Enterprise Software</h3> | |
| <dl class="page-index"> | |
| <dt><b><a href="http://openwbem.sourceforge.net">OpenWBEM</a></b></dt> | |
| <dd> | |
| The OpenWBEM project is an effort to develop an open-source | |
| implementation of Web Based Enterprise Management suitable for | |
| commercial and non-commercial application | |
| <p><a href="mailto:dnuffer@sco.com">Dan Nuffer</a> writes:</p> | |
| <blockquote> | |
| I'm using Boost.Python to wrap the client API of OpenWBEM.This will | |
| make it easier to do rapid prototyping, testing, and scripting when | |
| developing management solutions that use WBEM. | |
| </blockquote> | |
| </dd> | |
| <dt><b><a href="http://www.transversal.com">Metafaq</a></b></dt> | |
| <dd> | |
| Metafaq, from <a href="http://www.transversal.com">Transversal, | |
| Inc.</a>, is an enterprise level online knowledge base management | |
| system. | |
| <p><a href="mailto:ben.young-at-transversal.com">Ben Young</a> | |
| writes:</p> | |
| <blockquote> | |
| Boost.Python is used in an automated process to generate python | |
| bindings to our api which is exposed though multiple backends and | |
| frontends. This allows us to write quick tests and bespoke scripts to | |
| perform one off tasks without having to go through the full | |
| compilation cycle. | |
| </blockquote> | |
| </dd> | |
| </dl> | |
| <h3>Games</h3> | |
| <dl> | |
| <dt><b><a href="http://www.firaxis.com">Civilization IV</a></b></dt> | |
| </dl> | |
| <blockquote> | |
| “The fourth game in the PC strategy series that has sold over five | |
| million copies, Sid Meier's Civilization IV is a bold step forward for | |
| the franchise, with spectacular new 3D graphics and all-new single and | |
| multiplayer content. Civilization IV will also set a new standard for | |
| user-modification, allowing gamers to create their own add-ons using | |
| Python and XML. | |
| <p>Sid Meier's Civilization IV will be released for PC in late 2005. For | |
| more information please visit <a href= | |
| "http://www.firaxis.com">http://www.firaxis.com</a> or write <a href= | |
| "mailto:kgilmore@firaxis.com">kgilmore@firaxis.com</a>”</p> | |
| </blockquote> | |
| <p>Boost.Python is used as the interface layer between the C++ game code | |
| and Python. Python is used for many purposes in the game, including map | |
| generation, interface screens, game events, tools, tutorials, etc. Most | |
| high-level game operations have been exposed to Python in order to give | |
| modders the power they need to customize the game.</p> | |
| <blockquote> | |
| -Mustafa Thamer, Civ4 Lead Programmer | |
| </blockquote> | |
| <dl class="page-index"> | |
| <dt><b><a href="http://vegastrike.sourceforge.net">Vega | |
| Strike</a></b></dt> | |
| <dd> | |
| <a href="http://vegastrike.sourceforge.net">Vega Strike</a> is the 3D | |
| Space Simulator that allows you to trade and bounty hunt in a vast | |
| universe. Players face dangers, decisions, piracy, and aliens. | |
| <p><a href="http://vegastrike.sourceforge.net">Vega Strike</a> has | |
| decided to base its scripting on python, using boost as the layer | |
| between the class hierarchy in python and the class hierarchy in C++. | |
| The result is a very flexible scripting system that treats units as | |
| native python classes when designing missions or writing AI's.</p> | |
| <p>A large economic and planetary simulation is currently being run in | |
| the background in python and the results are returned back into C++ in | |
| the form of various factions' spaceships appearing near worlds that | |
| they are simulated to be near in python if the player is in the general | |
| neighborhood.</p> | |
| </dd> | |
| </dl> | |
| <h3>Graphics</h3> | |
| <dl class="page-index"> | |
| <dt><b><a href="http://sourceforge.net/projects/pyosg">OpenSceneGraph | |
| Bindings</a></b></dt> | |
| <dd><a href="mailto:gideon@computer.org">Gideon May</a> has created a set | |
| of bindings for <a href= | |
| "http://www.openscenegraph.org">OpenSceneGraph</a>, a cross-platform | |
| C++/OpenGL library for the real-time visualization.<br> | |
| </dd> | |
| <dt><b><a href= | |
| "http://www.slac.stanford.edu/grp/ek/hippodraw/index.html">HippoDraw</a></b></dt> | |
| <dd> | |
| HippoDraw is a data analysis environment consisting of a canvas upon | |
| which graphs such as histograms, scattter plots, etc, are prsented. It | |
| has a highly interactive GUI interface, but some things you need to do | |
| with scripts. HippoDraw can be run as Python extension module so that | |
| all the manipulation can be done from either Python or the GUI. | |
| <p>Before the web page came online, <a href= | |
| "mailto:Paul_Kunz@SLAC.Stanford.EDU">Paul F. Kunz</a> wrote:</p> | |
| <blockquote> | |
| Don't have a web page for the project, but the organization's is | |
| <a href= | |
| "http://www.slac.stanford.edu">http://www.slac.stanford.edu</a> (the | |
| first web server site in America, I installed it). | |
| </blockquote>Which was just too cool a piece of trivia to omit.<br> | |
| | |
| </dd> | |
| <dt><a href="http://www.iplt.org"><b>IPLT</b></a></dt> | |
| <dd> | |
| <a href="mailto:ansgar.philippsen-at-unibas.ch">Ansgar Philippsen</a> | |
| writes: | |
| <blockquote> | |
| IPLT is an image processing library and toolbox for the structural | |
| biology electron microscopy community. I would call it a | |
| budding/evolving project, since it is currently not in production | |
| stage, but rather under heavy development. Python is used as the main | |
| scripting/interaction level, but also for rapid prototyping, since | |
| the underlying C++ class library is pretty much fully exposed via | |
| boost.python (at least the high-level interface). The combined power | |
| of C++ and Python for this project turned out to be just awesome. | |
| </blockquote><br> | |
| | |
| </dd> | |
| <dt><a href= | |
| "http://www.procoders.net/pythonmagick"><b>PythonMagick</b></a></dt> | |
| <dd>PythonMagick binds the <a href= | |
| "http://www.graphicsmagick.org">GraphicsMagick</a> image manipulation | |
| library to Python.<br> | |
| </dd> | |
| <dt><a href="http://www.vpython.org"><b>VPython</b></a></dt> | |
| <dd> | |
| <a href="mailto:Bruce_Sherwood-at-ncsu.edu">Bruce Sherwood</a> writes: | |
| <blockquote> | |
| VPython is an extension for Python that makes it easy to create | |
| navigable 3D animations, which are generated as a side effect of | |
| computational code. VPython is used in education for various | |
| purposes, including teaching physics and programming, but it has also | |
| been used by research scientists to visualize systems or data in 3D. | |
| </blockquote><br> | |
| | |
| </dd> | |
| </dl> | |
| <h3>Scientific Computing</h3> | |
| <dl class="page index"> | |
| <dt><a href="http://camfr.sourceforge.net"><b>CAMFR</b></a></dt> | |
| <dd> | |
| CAMFR is a photonics and electromagnetics modelling tool. Python is | |
| used for computational steering. | |
| <p><a href="mailto:Peter.Bienstman@rug.ac.be">Peter Bienstman</a> | |
| writes:</p> | |
| <blockquote> | |
| Thanks for providing such a great tool! | |
| </blockquote> | |
| </dd> | |
| <dt><a href="http://cctbx.sourceforge.net"><b>cctbx - Computational | |
| Crystallography Toolbox</b></a></dt> | |
| <dd> | |
| Computational Crystallography is concerned with the derivation of | |
| atomic models of crystal structures, given experimental X-ray | |
| diffraction data. The cctbx is an open-source library of fundamental | |
| algorithms for crystallographic computations. The core algorithms are | |
| implemented in C++ and accessed through higher-level Python interfaces. | |
| <p>The cctbx grew together with Boost.Python and is designed from the | |
| ground up as a hybrid Python/C++ system. With one minor exception, | |
| run-time polymorphism is completely handled by Python. C++ compile-time | |
| polymorphism is used to implement performance critical algorithms. The | |
| Python and C++ layers are seamlessly integrated using Boost.Python.</p> | |
| <p>The SourceForge cctbx project is organized in modules to facilitate | |
| use in non-crystallographic applications. The scitbx module implements | |
| a general purpose array family for scientific applications and pure C++ | |
| ports of FFTPACK and the L-BFGS quasi-Newton minimizer.</p> | |
| </dd> | |
| <dt><a href="http://www.llnl.gov/CASC/emsolve"><b>EMSolve</b></a></dt> | |
| <dd>EMSolve is a provably stable, charge conserving, and energy | |
| conserving solver for Maxwell's equations.<br> | |
| </dd> | |
| <dt><b><a href="http://cern.ch/gaudi">Gaudi</a></b> and <b><a href= | |
| "http://cern.ch/Gaudi/RootPython/">RootPython</a></b></dt> | |
| <dd> | |
| Gaudi is a framework for particle physics collision data processing | |
| applications developed in the context of the LHCb and ATLAS experiments | |
| at CERN. | |
| <p><a href="mailto:Pere.Mato@cern.ch">Pere Mato Vila</a> writes:</p> | |
| <blockquote> | |
| We are using Boost.Python to provide scripting/interactive capability | |
| to our framework. We have a module called "GaudiPython" implemented | |
| using Boost.Python that allows the interaction with any framework | |
| service or algorithm from python. RootPython also uses Boost.Python | |
| to provide a generic "gateway" between the <a href= | |
| "http://root.cern.ch">ROOT</a> framework and python | |
| <p>Boost.Python is great. We managed very quickly to interface our | |
| framework to python, which is great language. We are trying to | |
| facilitate to our physicists (end-users) a rapid analysis application | |
| development environment based on python. For that, Boost.Python plays | |
| and essential role.</p> | |
| </blockquote> | |
| </dd> | |
| <dt><b><a href="http://www.esss.com.br">ESSS</a></b></dt> | |
| <dd> | |
| ESSS (Engineering Simulation and Scientific Software) is a company that | |
| provides engineering solutions and acts in the brazilian and | |
| south-american market providing products and services related to | |
| Computational Fluid Dynamics and Image Analysis. | |
| <p><a href="mailto:bruno@esss.com.br">Bruno da Silva de Oliveira</a> | |
| writes:</p> | |
| <blockquote> | |
| Recently we moved our work from working exclusively with C++ to an | |
| hybrid-language approach, using Python and C++, with Boost.Python | |
| providing the layer between the two. The results are great so far! | |
| </blockquote> | |
| <p>Two projects have been developed so far with this technology:</p> | |
| <p><b><a href= | |
| "http://www.esss.com.br/index.php?pg=dev_projetos">Simba</a></b> | |
| provides 3D visualization of geological formations gattered from the | |
| simulation of the evolution of oil systems, allowing the user to | |
| analyse various aspects of the simulation, like deformation, pressure | |
| and fluids, along the time of the simulation.</p> | |
| <p><b><a href= | |
| "http://www.esss.com.br/index.php?pg=dev_projetos">Aero</a></b> aims to | |
| construct a CFD with brazilian technology, which involves various | |
| companies and universities. ESSS is responsible for various of the | |
| application modules, including GUI and post-processing of results.</p> | |
| </dd> | |
| <dt><b><a href="http://polybori.sourceforge.net/">PolyBoRi</a></b></dt> | |
| <dd> | |
| <p><a href="mailto:brickenstein@mfo.de" | |
| >Michael Brickenstein</a> writes:</p> | |
| <blockquote> | |
| <p>The core of PolyBoRi is a C++ library, which provides | |
| high-level data types for Boolean polynomials and monomials, | |
| exponent vectors, as well as for the underlying polynomial | |
| rings and subsets of the powerset of the Boolean variables. As | |
| a unique approach, binary decision diagrams are used as | |
| internal storage type for polynomial structures. On top of | |
| this C++-library we provide a Python interface. This allows | |
| parsing of complex polynomial systems, as well as sophisticated | |
| and extendable strategies for Gröbner basis computation. | |
| Boost.Python has helped us to create this interface in a | |
| very clean way.</p> | |
| </blockquote> | |
| </dd> | |
| <dt><b><a href="http://www.rationaldiscovery.com">Rational Discovery | |
| LLC</a></b></dt> | |
| <dd> | |
| Rational Discovery provides computational modeling, combinatorial | |
| library design and custom software development services to the | |
| pharmaceutical, biotech and chemical industries. We do a substantial | |
| amount of internal research to develop new approaches for applying | |
| machine-learning techniques to solve chemical problems. Because we're a | |
| small organization and chemistry is a large and complex field, it is | |
| essential that we be able to quickly and easily prototype and test new | |
| algorithms. | |
| <p>For our internal software, we implement core data structures in C | |
| and expose them to Python using Boost.Python. Algorithm development is | |
| done in Python and then translated to C if required (often it's not). | |
| This hybrid development approach not only greatly increases our | |
| productivity, but it also allows "non-developers" (people without C | |
| experience) to take part in method development. Learning C is a | |
| daunting task, but "Python fits your brain." (Thanks to Bruce Eckel for | |
| the quote.)</p> | |
| </dd> | |
| </dl> | |
| <h3>Systems Libraries</h3> | |
| <dl> | |
| <dt><a href="http://itamarst.org/software"><b>Fusion</b></a></dt> | |
| <dd> | |
| <p>Fusion is a library that supports implementing protocols in C++ for | |
| use with Twisted, allowing control over memory allocation strategies, | |
| fast method calls internally, etc.. Fusion supports TCP, UDP and | |
| multicast, and is implemented using the Boost.Python python | |
| bindings.</p> | |
| <p>Fusion is licensed under the MIT license, and available for download | |
| from <a href= | |
| "http://itamarst.org/software">http://itamarst.org/software</a>.</p> | |
| </dd> | |
| </dl> | |
| <h3>Tools</h3> | |
| <dl> | |
| <dt><a href="http://www.jayacard.org"><b>Jayacard</b></a></dt> | |
| <dd> | |
| Jayacard aims at developing a secure portable open source operating | |
| system for contactless smart cards and a complete suite of high quality | |
| development tools to ease smart card OS and application development. | |
| <p>The core of the smart card reader management is written in C++ but | |
| all the development tools are written in the friendly Python language. | |
| Boost plays the fundamental role of binding the tools to our core smart | |
| card reader library.</p> | |
| </dd> | |
| </dl> | |
| <hr> | |
| <p>Revised | |
| <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan --> | |
| 29 May, 2008</p> | |
| <p><i>© Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave | |
| Abrahams</a> 2002-2008.</i></p> | |
| </body> | |
| </html> |