Free/Open Source Software for Science & Engineering
Free/Open Source applications
Science and Engineering
I U A C
GNU Operating System
Unixlike operating systems built from a collection of
libraries, applications and developer tools.
Linux kernel allocate resources and talk to the
The combination of GNU and Linux is the
GNU/Linux OS used by millions.
Many variants or “distributions”
Popular GNU/Linux distributions
What is Free Software?
Free software is a matter of the users' freedom to run, copy,
distribute, study, change and improve the software.
In the GNU project, the term "copyleft" is used to protect
these freedoms legally for everyone.
The Free Software Foundation (FSF)
is the principal organizational
sponsor of the GNU Project.
Free and open source software( F/OSS)
A Community in which information will be freely exchanged
Increase quality via community peer review
Accelerate development via community contributions
Dissemination of knowledge
Open Source in Science & Engineering
Science is an open process. Experimental results are
published and shared with the larger community to benefit
It makes sense that the software used for scientific
computations should also be open.
Designers can choose from a variety of opensource
software components ranging from multiple variations of
the wildly popular Linux operating system to
sophisticated debugging tools.
SourceForge.net, the largest opensourcesoftware
development site, provides free hosting to more than
230,000 registered projects, including database, security,
gaming, clustering, multimedia, and VOIP (voice over
Internet Protocol) offerings.
FOSS characteristics that make it popular
Customisation, licensing, hardware costs,
Problems that designers cite as reasons to stay away.
GNU/Linux for computational use
Linux is used on desktop PCs, supercomputing clusters,
embedded scientific equipment, as a programming
environment for scientific programming and a myriad of
Scientific Linux(SL) is a Linux release put together by
Fermilab, CERN, and various other labs and universities
around the world. Its primary purpose is to reduce
duplicated effort of the labs, and to have a common install
base for the various experimenters.
Linux programmers can take advantage of a number of
scientific libraries included in the distribution. :
Few scientific programs of general utility.
Scientific computation & Software Development
Python , Octave, Numpy/Scipy/
Monte Carlo Simulation/ Data Analysis
GCC, the GNU Compiler Collection
Includes front ends for C, C++, Fortran, Java, and Ada, as well
as libraries for these languages (libstdc++, libgcj,...).
GCC was originally written as the compiler for the GNU OS
GNU project debugger
GDB, the GNU project debugger, allows you to see what is
going on "inside" the program while it executes
Helps you catch bugs
Python: Programming tool kit
Python is a programming language created by Guido van
Rossum in 1989
Lets you work more quickly and integrate your systems
Gains in productivity and lower maintenance costs.
Highly cross platform
Python is free to use, even for commercial products.
Simple and complete by design
Part of many GNU/Linux distributions
Python Use Cases
Web and Internet Development
Offers wide range of choices for web development:
Writing basic CGI scripts.
Web application Frameworks such as Django and TurboGears.
Highend solutions such as Zope.
Advanced content management systems such as Plone.
Custom and ODBC interfaces to MySQL, Oracle, MS SQL
Server, PostgreSQL, SybODBC, and others
Standard Database API.
Object databases such as ZODB and Durus.
The Tk GUI development library is included with most
binary distributions for Python.
Scientific and Numeric
Python is widely used in scientific and numeric computing:
A superb language for teaching programming.
Python Special interest group is a good place to start
Game and 3D Graphics
Python is widely used in commercial and hobby game
PyGame and PyKyra are two of the game frameworks available
Support for lower level network programming:
Easytouse socket interface.
Twisted Python, a framework for asynchronous network
often used as a support language for software developers,
for build control and management, and testing
SCons for build control.
Buildbot and Apache Gump for automated continuous
compilation and testing.
Roundup or Trac for bug tracking and project management.
Python Success story
NASA: Space Shuttle Mission Design
AstraZeneca : uses python for collaborative drug discovery
ReHat : install scripts, sys admin tools
Google : Python is one of the official language
Nokia S60 smart phone
ForecastWatch.com Uses Python To Help Meteorologists
MayaVi Uses Python for Scientific Data Visualization
GSL GNU Scientific Library
The GNU Scientific Library is a numerical library for
C/C++ that contains builtin functionality for random
numbers, statistical distributions, matrix mathematics,
complex numbers, and more. The library provides a wide
range of mathematical routines such as random number
generators, special functions and leastsquares fitting.
There are over 1000 functions in total with an extensive
Scientific Tools for Python
NumPy and SciPy are two of many opensource
packages for scientific computing that use the Python
Octave is a highlevel language, primarily intended for
It provides a convenient command line interface for
solving linear and nonlinear problems numerically, and for
performing other numerical experiments using a language
that is mostly compatible with Matlab.
Octave has extensive tools for solving common numerical
linear algebra problems, finding the roots of nonlinear
equations, integrating ordinary functions, manipulating
polynomials, and integrating ordinary differential and
The R Project for Statistical Computing
R is an integrated suite of software facilities for data
manipulation, calculation and graphical display.
A suite of operators for calculations on arrays, in particular
A large, coherent, integrated collection of intermediate tools
for data analysis
Graphical facilities for data analysis and display either on
screen or on hard copy
TeX/ LaTeX : a document preparation system
A highquality typesetting system designed for production of
technical & scientific papers
De facto standard for communication and publication of
Separates content creation from typesetting issues
Similar to HTML : text is marked up and processed to
produce a document.
Nice features such as automatically creating properly
formatted title pages and reference sections.
A TeX document is processed by the LaTeX program to
produce a variety of formats, include DVI, PostScript, PDF,
For visualization tasks from creating
insightful images to building complete
OpenDX is a uniquely powerful, fullfeatured software
package for the visualization of scientific, engineering and
Its sophisticated data model provides users with great
flexibility in creating visualizations.
SciDAVis is a free interactive application aimed at data analysis
and publicationquality plotting.
SciDAVis is similar in its field of application to proprietary Windows
applications like Origin
Qt GUI Designer
The Qt Designer is a visual design tool that makes
designing and implementing user interfaces a lot easier
The persistence of vision raytracer a high quality tool for creating
stunning 3D graphics
Used to create images suitable for all stages of scientific research:
investigation, diagrams for papers, and high quality images for
Finite Element Analysis
Open Source Finite Element Software for Multi physical
Elmer includes physical models of fluid dynamics, structural
mechanics, electromagnetic, heat transfer and acoustics, for
example. These are described by partial differential
equations which Elmer solves by the Finite Element Method
Geographic Resources Analysis Support System
GRASS is free Geographic Information System (GIS)
software used for geospatial data management and
analysis, image processing, graphics/maps production,
spatial modelling, and visualization.
Used by academic and many governmental agencies and
environmental consulting companies.
Modules for management, processing, analysis and
visualization of georeferenced data.
BRLCAD is a powerful crossplatform open source solid
modelling system that includes interactive geometry
editing, highperformance raytracing for rendering and
geometric analysis, image and signalprocessing tools, a
system performance analysis benchmark suite, libraries for
robust geometric representation.
GPL'd suite and toolkit of Electronic Design Automation
Used for electrical circuit design, schematic capture,
simulation, prototyping, production, analog and digital
simulation, and printed circuit board (PCB) layout.
Geant4 is a toolkit for the simulation of the passage of
particles through matter. Its areas of application include
high energy, nuclear and accelerator physics, as well as
studies in medical and space science.
The ROOT system provides a set of OO frameworks with
all the functionality needed to handle and analyse large
amounts of data in a very efficient way.
Included are histograming methods in an arbitrary
number of dimensions, curve fitting, function evaluation,
minimization, graphics and visualization classes to allow
the easy setup of an analysis system that can query and
process the data interactively or in batch mode
Source Code Repository
SourceForge is a centralized location to download and
develop free open source software.
World's largest open source software development web site.
More than 230,000 software projects have been registered
More than 2 million registered users,
Largest collection of open source tools and applications on
Free Access to hosting and tools for developers
Open access EPrint archives
Open access to 584,546 eprints in Physics,
Mathematics, Computer Science, Biology, Finance
Open Science Project
The OpenScience Project maintains a comprehensive listing of
openly available scientific software packages.
Contains packages for a wide range of disciplines, including,
mathematics, astronomy, anthropology, and archaeology.
It makes it easy to find software for specialized scientific
Android by google
Android is the first free, open source, and fully customizable
mobile platform. Android offers a full stack: an operating
system, middleware, and key mobile applications. It also
contains a rich set of APIs that allows thirdparty developers
to develop great application
Computer Interfaced Science Experiments
Phoenix allows you to develop science experiments by
connecting sensor / control elements to a computer and
access them through software. Phoenix depends heavily
on Python language.
The hardware design is freely available. The project is
based on Free Software tools and the code is distributed
under GNU GPL .