1 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
---|
2 | |
---|
3 | <!-- Copyright David Abrahams 2006. Distributed under the Boost --> |
---|
4 | <!-- Software License, Version 1.0. (See accompanying --> |
---|
5 | <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> |
---|
6 | <html> |
---|
7 | <head> |
---|
8 | <meta name="generator" content= |
---|
9 | "HTML Tidy for Cygwin (vers 1st September 2004), see www.w3.org"> |
---|
10 | <meta http-equiv="Content-Type" content="text/html"> |
---|
11 | <link rel="stylesheet" type="text/css" href="boost.css"> |
---|
12 | |
---|
13 | <title>Boost.Python - Projects using Boost.Python</title> |
---|
14 | </head> |
---|
15 | |
---|
16 | <body link="#0000FF" vlink="#800080"> |
---|
17 | <table border="0" cellpadding="7" cellspacing="0" width="100%" summary= |
---|
18 | "header"> |
---|
19 | <tr> |
---|
20 | <td valign="top" width="300"> |
---|
21 | <h3><a href="../../../index.htm"><img height="86" width="277" alt= |
---|
22 | "C++ Boost" src="../../../boost.png" border="0"></a></h3> |
---|
23 | </td> |
---|
24 | |
---|
25 | <td valign="top"> |
---|
26 | <h1 align="center"><a href="index.html">Boost.Python</a></h1> |
---|
27 | |
---|
28 | <h2 align="center">Projects using Boost.Python</h2> |
---|
29 | </td> |
---|
30 | </tr> |
---|
31 | </table> |
---|
32 | <hr> |
---|
33 | |
---|
34 | <h2>Introduction</h2> |
---|
35 | |
---|
36 | <p>This is a partial list of projects using Boost.Python. If you are using |
---|
37 | Boost.Python as your Python/C++ binding solution, we'd be proud to list |
---|
38 | your project on this page. Just <a href= |
---|
39 | "mailto:c++-sig@python.org">post</a> a short description of your project |
---|
40 | and how Boost.Python helps you get the job done, and we'll add it to this |
---|
41 | page .</p> |
---|
42 | <hr> |
---|
43 | |
---|
44 | <h3>Data Analysis</h3> |
---|
45 | |
---|
46 | <dl class="page-index"> |
---|
47 | <dt><b><a href="http://www.neuralynx.com">NeuraLab</a></b></dt> |
---|
48 | |
---|
49 | <dd>Neuralab is a data analysis environment specifically tailored for |
---|
50 | neural data from <a href="http://www.neuralynx.com">Neuralynx</a> |
---|
51 | acquisition systems. Neuralab combines presentation quality graphics, a |
---|
52 | numerical analysis library, and the <a href= |
---|
53 | "http://www.python.org">Python</a> scripting engine in a single |
---|
54 | application. With Neuralab, Neuralynx users can perform common analysis |
---|
55 | tasks with just a few mouse clicks. More advanced users can create custom |
---|
56 | Python scripts, which can optionally be assigned to menus and mouse |
---|
57 | clicks.</dd> |
---|
58 | </dl> |
---|
59 | |
---|
60 | <dl class="page-index"> |
---|
61 | <dt><b>TSLib</b> - <a href="http://www.fortressinv.com">Fortress |
---|
62 | Investment Group LLC</a></dt> |
---|
63 | |
---|
64 | <dd> |
---|
65 | Fortress Investment Group has contracted <a href= |
---|
66 | "http://www.boost-consulting.com">Boost Consulting</a> to develop core |
---|
67 | internal financial analysis tools in C++ and to prepare Python bindings |
---|
68 | for them using Boost.Python. |
---|
69 | |
---|
70 | <p>Tom Barket of Fortress writes:</p> |
---|
71 | |
---|
72 | <blockquote> |
---|
73 | We have a large C++ analytical library specialized for research in |
---|
74 | finance and economics, built for speed and mission critical |
---|
75 | stability. Yet Python offers us the flexibility to test out new ideas |
---|
76 | quickly and increase the productivity of our time versus working in |
---|
77 | C++. There are several key features which make Python stand out. Its |
---|
78 | elegance, stability, and breadth of resources on the web are all |
---|
79 | valuable, but the most important is its extensibility, due to its |
---|
80 | open source transparency. Boost.Python makes Python extensibility |
---|
81 | extremely simple and straightforward, yet preserves a great deal of |
---|
82 | power and control. |
---|
83 | </blockquote> |
---|
84 | </dd> |
---|
85 | </dl> |
---|
86 | |
---|
87 | <h3>Educational</h3> |
---|
88 | |
---|
89 | <dl class="page-index"> |
---|
90 | <dt><a href="http://edu.kde.org/kig"><b>Kig</b></a></dt> |
---|
91 | |
---|
92 | <dd> |
---|
93 | <p>KDE Interactive Geometry is a high-school level educational tool, |
---|
94 | built for the KDE desktop. It is a nice tool to let students work with |
---|
95 | geometrical constructions. It is meant to be the most intuitive, yet |
---|
96 | featureful application of its kind.</p> |
---|
97 | |
---|
98 | <p>Versions after 0.6.x (will) support objects built by the user |
---|
99 | himself in the Python language. The exporting of the relevant internal |
---|
100 | API's were done using Boost.Python, which made the process very |
---|
101 | easy.</p> |
---|
102 | </dd> |
---|
103 | </dl> |
---|
104 | |
---|
105 | <h3>Enterprise Software</h3> |
---|
106 | |
---|
107 | <dl class="page-index"> |
---|
108 | <dt><b><a href="http://openwbem.sourceforge.net">OpenWBEM</a></b></dt> |
---|
109 | |
---|
110 | <dd> |
---|
111 | The OpenWBEM project is an effort to develop an open-source |
---|
112 | implementation of Web Based Enterprise Management suitable for |
---|
113 | commercial and non-commercial application |
---|
114 | |
---|
115 | <p><a href="mailto:dnuffer@sco.com">Dan Nuffer</a> writes:</p> |
---|
116 | |
---|
117 | <blockquote> |
---|
118 | I'm using Boost.Python to wrap the client API of OpenWBEM.This will |
---|
119 | make it easier to do rapid prototyping, testing, and scripting when |
---|
120 | developing management solutions that use WBEM. |
---|
121 | </blockquote> |
---|
122 | </dd> |
---|
123 | |
---|
124 | <dt><b><a href="http://www.transversal.com">Metafaq</a></b></dt> |
---|
125 | |
---|
126 | <dd> |
---|
127 | Metafaq, from <a href="http://www.transversal.com">Transversal, |
---|
128 | Inc.</a>, is an enterprise level online knowledge base management |
---|
129 | system. |
---|
130 | |
---|
131 | <p><a href="mailto:ben.young-at-transversal.com">Ben Young</a> |
---|
132 | writes:</p> |
---|
133 | |
---|
134 | <blockquote> |
---|
135 | Boost.Python is used in an automated process to generate python |
---|
136 | bindings to our api which is exposed though multiple backends and |
---|
137 | frontends. This allows us to write quick tests and bespoke scripts to |
---|
138 | perform one off tasks without having to go through the full |
---|
139 | compilation cycle. |
---|
140 | </blockquote> |
---|
141 | </dd> |
---|
142 | </dl> |
---|
143 | |
---|
144 | <h3>Games</h3> |
---|
145 | |
---|
146 | <dl> |
---|
147 | <dt><b><a href="http://www.firaxis.com">Civilization IV</a></b></dt> |
---|
148 | </dl> |
---|
149 | |
---|
150 | <blockquote> |
---|
151 | “The fourth game in the PC strategy series that has sold over five |
---|
152 | million copies, Sid Meier's Civilization IV is a bold step forward for |
---|
153 | the franchise, with spectacular new 3D graphics and all-new single and |
---|
154 | multiplayer content. Civilization IV will also set a new standard for |
---|
155 | user-modification, allowing gamers to create their own add-ons using |
---|
156 | Python and XML. |
---|
157 | |
---|
158 | <p>Sid Meier's Civilization IV will be released for PC in late 2005. For |
---|
159 | more information please visit <a href= |
---|
160 | "http://www.firaxis.com">http://www.firaxis.com</a> or write <a href= |
---|
161 | "mailto:kgilmore@firaxis.com">kgilmore@firaxis.com</a>”</p> |
---|
162 | </blockquote> |
---|
163 | |
---|
164 | <p>Boost.Python is used as the interface layer between the C++ game code |
---|
165 | and Python. Python is used for many purposes in the game, including map |
---|
166 | generation, interface screens, game events, tools, tutorials, etc. Most |
---|
167 | high-level game operations have been exposed to Python in order to give |
---|
168 | modders the power they need to customize the game.</p> |
---|
169 | |
---|
170 | <blockquote> |
---|
171 | -Mustafa Thamer, Civ4 Lead Programmer |
---|
172 | </blockquote> |
---|
173 | |
---|
174 | <dl class="page-index"> |
---|
175 | <dt><b><a href="http://vegastrike.sourceforge.net">Vega |
---|
176 | Strike</a></b></dt> |
---|
177 | |
---|
178 | <dd> |
---|
179 | <a href="http://vegastrike.sourceforge.net">Vega Strike</a> is the 3D |
---|
180 | Space Simulator that allows you to trade and bounty hunt in a vast |
---|
181 | universe. Players face dangers, decisions, piracy, and aliens. |
---|
182 | |
---|
183 | <p><a href="http://vegastrike.sourceforge.net">Vega Strike</a> has |
---|
184 | decided to base its scripting on python, using boost as the layer |
---|
185 | between the class hierarchy in python and the class hierarchy in C++. |
---|
186 | The result is a very flexible scripting system that treats units as |
---|
187 | native python classes when designing missions or writing AI's.</p> |
---|
188 | |
---|
189 | <p>A large economic and planetary simulation is currently being run in |
---|
190 | the background in python and the results are returned back into C++ in |
---|
191 | the form of various factions' spaceships appearing near worlds that |
---|
192 | they are simulated to be near in python if the player is in the general |
---|
193 | neighborhood.</p> |
---|
194 | </dd> |
---|
195 | </dl> |
---|
196 | |
---|
197 | <h3>Graphics</h3> |
---|
198 | |
---|
199 | <dl class="page-index"> |
---|
200 | <dt><b><a href="http://sourceforge.net/projects/pyosg">OpenSceneGraph |
---|
201 | Bindings</a></b></dt> |
---|
202 | |
---|
203 | <dd><a href="mailto:gideon@computer.org">Gideon May</a> has created a set |
---|
204 | of bindings for <a href= |
---|
205 | "http://www.openscenegraph.org">OpenSceneGraph</a>, a cross-platform |
---|
206 | C++/OpenGL library for the real-time visualization.<br> |
---|
207 | </dd> |
---|
208 | |
---|
209 | <dt><b><a href= |
---|
210 | "http://www.slac.stanford.edu/grp/ek/hippodraw/index.html">HippoDraw</a></b></dt> |
---|
211 | |
---|
212 | <dd> |
---|
213 | HippoDraw is a data analysis environment consisting of a canvas upon |
---|
214 | which graphs such as histograms, scattter plots, etc, are prsented. It |
---|
215 | has a highly interactive GUI interface, but some things you need to do |
---|
216 | with scripts. HippoDraw can be run as Python extension module so that |
---|
217 | all the manipulation can be done from either Python or the GUI. |
---|
218 | |
---|
219 | <p>Before the web page came online, <a href= |
---|
220 | "mailto:Paul_Kunz@SLAC.Stanford.EDU">Paul F. Kunz</a> wrote:</p> |
---|
221 | |
---|
222 | <blockquote> |
---|
223 | Don't have a web page for the project, but the organization's is |
---|
224 | <a href= |
---|
225 | "http://www.slac.stanford.edu">http://www.slac.stanford.edu</a> (the |
---|
226 | first web server site in America, I installed it). |
---|
227 | </blockquote>Which was just too cool a piece of trivia to omit.<br> |
---|
228 | |
---|
229 | </dd> |
---|
230 | |
---|
231 | <dt><a href="http://www.iplt.org"><b>IPLT</b></a></dt> |
---|
232 | |
---|
233 | <dd> |
---|
234 | <a href="mailto:ansgar.philippsen-at-unibas.ch">Ansgar Philippsen</a> |
---|
235 | writes: |
---|
236 | |
---|
237 | <blockquote> |
---|
238 | IPLT is an image processing library and toolbox for the structural |
---|
239 | biology electron microscopy community. I would call it a |
---|
240 | budding/evolving project, since it is currently not in production |
---|
241 | stage, but rather under heavy development. Python is used as the main |
---|
242 | scripting/interaction level, but also for rapid prototyping, since |
---|
243 | the underlying C++ class library is pretty much fully exposed via |
---|
244 | boost.python (at least the high-level interface). The combined power |
---|
245 | of C++ and Python for this project turned out to be just awesome. |
---|
246 | </blockquote><br> |
---|
247 | |
---|
248 | </dd> |
---|
249 | |
---|
250 | <dt><a href= |
---|
251 | "http://www.procoders.net/pythonmagick"><b>PythonMagick</b></a></dt> |
---|
252 | |
---|
253 | <dd>PythonMagick binds the <a href= |
---|
254 | "http://www.graphicsmagick.org">GraphicsMagick</a> image manipulation |
---|
255 | library to Python.<br> |
---|
256 | </dd> |
---|
257 | |
---|
258 | <dt><a href="http://www.vpython.org"><b>VPython</b></a></dt> |
---|
259 | |
---|
260 | <dd> |
---|
261 | <a href="mailto:Bruce_Sherwood-at-ncsu.edu">Bruce Sherwood</a> writes: |
---|
262 | |
---|
263 | <blockquote> |
---|
264 | VPython is an extension for Python that makes it easy to create |
---|
265 | navigable 3D animations, which are generated as a side effect of |
---|
266 | computational code. VPython is used in education for various |
---|
267 | purposes, including teaching physics and programming, but it has also |
---|
268 | been used by research scientists to visualize systems or data in 3D. |
---|
269 | </blockquote><br> |
---|
270 | |
---|
271 | </dd> |
---|
272 | </dl> |
---|
273 | |
---|
274 | <h3>Scientific Computing</h3> |
---|
275 | |
---|
276 | <dl class="page index"> |
---|
277 | <dt><a href="http://camfr.sourceforge.net"><b>CAMFR</b></a></dt> |
---|
278 | |
---|
279 | <dd> |
---|
280 | CAMFR is a photonics and electromagnetics modelling tool. Python is |
---|
281 | used for computational steering. |
---|
282 | |
---|
283 | <p><a href="mailto:Peter.Bienstman@rug.ac.be">Peter Bienstman</a> |
---|
284 | writes:</p> |
---|
285 | |
---|
286 | <blockquote> |
---|
287 | Thanks for providing such a great tool! |
---|
288 | </blockquote> |
---|
289 | </dd> |
---|
290 | |
---|
291 | <dt><a href="http://cctbx.sourceforge.net"><b>cctbx - Computational |
---|
292 | Crystallography Toolbox</b></a></dt> |
---|
293 | |
---|
294 | <dd> |
---|
295 | Computational Crystallography is concerned with the derivation of |
---|
296 | atomic models of crystal structures, given experimental X-ray |
---|
297 | diffraction data. The cctbx is an open-source library of fundamental |
---|
298 | algorithms for crystallographic computations. The core algorithms are |
---|
299 | implemented in C++ and accessed through higher-level Python interfaces. |
---|
300 | |
---|
301 | <p>The cctbx grew together with Boost.Python and is designed from the |
---|
302 | ground up as a hybrid Python/C++ system. With one minor exception, |
---|
303 | run-time polymorphism is completely handled by Python. C++ compile-time |
---|
304 | polymorphism is used to implement performance critical algorithms. The |
---|
305 | Python and C++ layers are seamlessly integrated using Boost.Python.</p> |
---|
306 | |
---|
307 | <p>The SourceForge cctbx project is organized in modules to facilitate |
---|
308 | use in non-crystallographic applications. The scitbx module implements |
---|
309 | a general purpose array family for scientific applications and pure C++ |
---|
310 | ports of FFTPACK and the L-BFGS quasi-Newton minimizer.</p> |
---|
311 | </dd> |
---|
312 | |
---|
313 | <dt><a href="http://www.llnl.gov/CASC/emsolve"><b>EMSolve</b></a></dt> |
---|
314 | |
---|
315 | <dd>EMSolve is a provably stable, charge conserving, and energy |
---|
316 | conserving solver for Maxwell's equations.<br> |
---|
317 | </dd> |
---|
318 | |
---|
319 | <dt><b><a href="http://cern.ch/gaudi">Gaudi</a></b> and <b><a href= |
---|
320 | "http://cern.ch/Gaudi/RootPython/">RootPython</a></b></dt> |
---|
321 | |
---|
322 | <dd> |
---|
323 | Gaudi is a framework for particle physics collision data processing |
---|
324 | applications developed in the context of the LHCb and ATLAS experiments |
---|
325 | at CERN. |
---|
326 | |
---|
327 | <p><a href="mailto:Pere.Mato@cern.ch">Pere Mato Vila</a> writes:</p> |
---|
328 | |
---|
329 | <blockquote> |
---|
330 | We are using Boost.Python to provide scripting/interactive capability |
---|
331 | to our framework. We have a module called "GaudiPython" implemented |
---|
332 | using Boost.Python that allows the interaction with any framework |
---|
333 | service or algorithm from python. RootPython also uses Boost.Python |
---|
334 | to provide a generic "gateway" between the <a href= |
---|
335 | "http://root.cern.ch">ROOT</a> framework and python |
---|
336 | |
---|
337 | <p>Boost.Python is great. We managed very quickly to interface our |
---|
338 | framework to python, which is great language. We are trying to |
---|
339 | facilitate to our physicists (end-users) a rapid analysis application |
---|
340 | development environment based on python. For that, Boost.Python plays |
---|
341 | and essential role.</p> |
---|
342 | </blockquote> |
---|
343 | </dd> |
---|
344 | |
---|
345 | <dt><b><a href="http://www.esss.com.br">ESSS</a></b></dt> |
---|
346 | |
---|
347 | <dd> |
---|
348 | ESSS (Engineering Simulation and Scientific Software) is a company that |
---|
349 | provides engineering solutions and acts in the brazilian and |
---|
350 | south-american market providing products and services related to |
---|
351 | Computational Fluid Dynamics and Image Analysis. |
---|
352 | |
---|
353 | <p><a href="mailto:bruno@esss.com.br">Bruno da Silva de Oliveira</a> |
---|
354 | writes:</p> |
---|
355 | |
---|
356 | <blockquote> |
---|
357 | Recently we moved our work from working exclusively with C++ to an |
---|
358 | hybrid-language approach, using Python and C++, with Boost.Python |
---|
359 | providing the layer between the two. The results are great so far! |
---|
360 | </blockquote> |
---|
361 | |
---|
362 | <p>Two projects have been developed so far with this technology:</p> |
---|
363 | |
---|
364 | <p><b><a href= |
---|
365 | "http://www.esss.com.br/index.php?pg=dev_projetos">Simba</a></b> |
---|
366 | provides 3D visualization of geological formations gattered from the |
---|
367 | simulation of the evolution of oil systems, allowing the user to |
---|
368 | analyse various aspects of the simulation, like deformation, pressure |
---|
369 | and fluids, along the time of the simulation.</p> |
---|
370 | |
---|
371 | <p><b><a href= |
---|
372 | "http://www.esss.com.br/index.php?pg=dev_projetos">Aero</a></b> aims to |
---|
373 | construct a CFD with brazilian technology, which involves various |
---|
374 | companies and universities. ESSS is responsible for various of the |
---|
375 | application modules, including GUI and post-processing of results.</p> |
---|
376 | </dd> |
---|
377 | |
---|
378 | <dt><b><a href="http://www.rationaldiscovery.com">Rational Discovery |
---|
379 | LLC</a></b></dt> |
---|
380 | |
---|
381 | <dd> |
---|
382 | Rational Discovery provides computational modeling, combinatorial |
---|
383 | library design and custom software development services to the |
---|
384 | pharmaceutical, biotech and chemical industries. We do a substantial |
---|
385 | amount of internal research to develop new approaches for applying |
---|
386 | machine-learning techniques to solve chemical problems. Because we're a |
---|
387 | small organization and chemistry is a large and complex field, it is |
---|
388 | essential that we be able to quickly and easily prototype and test new |
---|
389 | algorithms. |
---|
390 | |
---|
391 | <p>For our internal software, we implement core data structures in C |
---|
392 | and expose them to Python using Boost.Python. Algorithm development is |
---|
393 | done in Python and then translated to C if required (often it's not). |
---|
394 | This hybrid development approach not only greatly increases our |
---|
395 | productivity, but it also allows "non-developers" (people without C |
---|
396 | experience) to take part in method development. Learning C is a |
---|
397 | daunting task, but "Python fits your brain." (Thanks to Bruce Eckel for |
---|
398 | the quote.)</p> |
---|
399 | </dd> |
---|
400 | </dl> |
---|
401 | |
---|
402 | <h3>Systems Libraries</h3> |
---|
403 | |
---|
404 | <dl> |
---|
405 | <dt><a href="http://itamarst.org/software"><b>Fusion</b></a></dt> |
---|
406 | |
---|
407 | <dd> |
---|
408 | <p>Fusion is a library that supports implementing protocols in C++ for |
---|
409 | use with Twisted, allowing control over memory allocation strategies, |
---|
410 | fast method calls internally, etc.. Fusion supports TCP, UDP and |
---|
411 | multicast, and is implemented using the Boost.Python python |
---|
412 | bindings.</p> |
---|
413 | |
---|
414 | <p>Fusion is licensed under the MIT license, and available for download |
---|
415 | from <a href= |
---|
416 | "http://itamarst.org/software">http://itamarst.org/software</a>.</p> |
---|
417 | </dd> |
---|
418 | </dl> |
---|
419 | |
---|
420 | <h3>Tools</h3> |
---|
421 | |
---|
422 | <dl> |
---|
423 | <dt><a href="http://www.jayacard.org"><b>Jayacard</b></a></dt> |
---|
424 | |
---|
425 | <dd> |
---|
426 | Jayacard aims at developing a secure portable open source operating |
---|
427 | system for contactless smart cards and a complete suite of high quality |
---|
428 | development tools to ease smart card OS and application development. |
---|
429 | |
---|
430 | <p>The core of the smart card reader management is written in C++ but |
---|
431 | all the development tools are written in the friendly Python language. |
---|
432 | Boost plays the fundamental role of binding the tools to our core smart |
---|
433 | card reader library.</p> |
---|
434 | </dd> |
---|
435 | </dl> |
---|
436 | <hr> |
---|
437 | |
---|
438 | <p>Revised |
---|
439 | <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan --> |
---|
440 | 15 July, 2003</p> |
---|
441 | |
---|
442 | <p><i>© Copyright <a href="../../../people/dave_abrahams.htm">Dave |
---|
443 | Abrahams</a> 2002-2003.</i></p> |
---|
444 | </body> |
---|
445 | </html> |
---|