<!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>
    &ldquo;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>&rdquo;</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>
    &nbsp;</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>
      &nbsp;
    </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>
      &nbsp;
    </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>
    &nbsp;</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>
      &nbsp;
    </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>
    &nbsp;</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&ouml;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>&copy; Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
  Abrahams</a> 2002-2008.</i></p>
</body>
</html>
