OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce applications utilising hardware-accelerated 3D graphics. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.
Features
Features Productivity features
Simple, easy to use OO interface designed to minimise the effort required to render 3D scenes, and to be independent of 3D implementation i.e. Direct3D/OpenGL.
Extensible example framework makes getting your application running is quick and simple
Common requirements like render state management, spatial culling, dealing with transparency are done for you automatically saving you valuable time
Clean, uncluttered design and full documentation of all engine classes
Proven, stable engine used in several commercial products
Platform & 3D API support
Direct3D and OpenGL support
Windows (all major versions), Linux and Mac OSX support
Builds on Visual C++ and Code::Blocks on Windows
Builds on gcc 3+ on Linux / Mac OSX (using XCode)
Material / Shader support
Powerful material declaration language allows you to maintain material assets outside of your code
Supports vertex and fragment programs (shaders), both low-level programs written in assembler, and high-level programs written in Cg, DirectX9 HLSL, or GLSL and provides automatic support for many commonly bound constant parameters like worldview matrices, light state information, object space eye position etc
Supports the complete range of fixed function operations such as multitexture and multipass blending, texture coordinate generation and modification, independent colour and alpha operations for non-programmable hardware or for lower cost materials
Multiple pass effects, with pass iteration if required for the closest ‘n’ lights
Support for multiple material techniques means you can design in alternative effects for a wide range of cards and OGRE automatically uses the best one supported
Material LOD support; your materials can reduce in cost as the objects using them get further away
Load textures from PNG, JPEG, TGA, BMP or DDS files, including unusual formats like 1D textures, volumetric textures, cubemaps and compressed textures (DXT/S3TC)
Textures can be provided and updated in realtime by plugins, for example a video feed
Easy to use projective texturing support
Meshes
Flexible mesh data formats accepted, separation of the concepts of vertex buffers, index buffers, vertex declarations and buffer mappings
Biquadric Bezier patches for curved surfaces
Progressive meshes (LOD), manual or automatically generated
Static geometry batcher
Animation
Sophisticated skeletal animation support
blending of multiple animations with variable weights
variable/multiple bone weight skinning
software and hardware-accelerated skinning pipelines with intelligent buffer sharing
manual bone control
Configurable interpolation modes, accuracy vs speed tradeoffs
Flexible shape animation support
Morph animation for legacy applications where you wish to perform simple linear blends between shape snapshots
Pose animation for modern shape animation, allowing you to blend many poses at variable weights along a timeline, for example expression / mouth shapes to perform facial animation
Both techniques can be implemented in hardware and software depending on hardware support
Animation of SceneNodes for camera paths and similar techniques, using spline interpolation where needed
Generic animation tracks can accept pluggable object adaptors to enable you to animate any parameter of any object over time
Scene Features
Highly customisable, flexible scene management, not tied to any single scene type. Use predefined classes for scene organisation if they suit or plug in your own subclass to gain full control over the scene organisation
Several example plugins demonstrate various ways of handling the scene specific to a particular type of layout (e.g. BSP, Octree)
Hierarchical scene graph; nodes allow objects to be attached to each other and follow each others movements, articulated structures etc
Multiple shadow rendering techniques, both modulative and additive techniques, stencil and texture based, each highly configurable and taking full advantage of any hardware acceleration available.
Scene querying features
Special Effects
Compositor system, allowing for full-screen postprocessing effects to be defined easily, via scripts if desired
Particle Systems, including easily extensible emitters, affectors and renderers (customisable through plugins). Systems can be defined in text scripts for easy tweaking. Automatic use of particle pooling for maximum performance
Support for skyboxes, skyplanes and skydomes, very easy to use
Billboarding for sprite graphics
Ribbon trails
Transparent objects automatically managed (rendering order & depth buffer settings all set up for you)
Misc features
Common resource infrastructure for memory management and loading from archives (ZIP, PK3)
Flexible plugin architecture allows engine to be extended without recompilation
‘Controllers’ allow you to easily organise derived values between objects e.g. changing the colour of a ship based on shields left
Debugging memory manager for identifying memory leaks
ReferenceAppLayer provides an example of how to combine OGRE with other libraries, for example ODE for collision & physics
XMLConverter to convert efficient runtime binary formats to/from XML for interchange or editing
“Orocos” is the acronym of the Open Robot Control Software project. The project’s aim is to develop a general-purpose, free software, and modular framework for robot and machine control. The Orocos project supports 4 C++ libraries: the Real-Time Toolkit, the Kinematics and Dynamics Library, the Bayesian Filtering Library and the Orocos Component Library.
The Orocos Real-Time Toolkit (RTT) is not an application in itself, but it provides the infrastructure and the functionalities to build robotics applications in C++. The emphasis is on real-time, on-line interactive and component based applications.
The Orocos Components Library (OCL) provides some ready to use control components. Both Component management and Components for control and hardware access are available.
The Orocos Kinematics and Dynamics Library (KDL) is a C++ library which allows to calculate kinematic chains in real-time.
The Orocos Bayesian Filtering Library (BFL) provides an application independent framework for inference in Dynamic Bayesian Networks, i.e., recursive information processing and estimation algorithms based on Bayes’ rule, such as (Extended) Kalman Filters, Particle Filters (Sequential Monte methods), etc.
Orocos is a free software project, hence its code and documentation are released under Free Software licenses.
ODE is an open source, high performance library for simulating rigid body dynamics. It is fully featured, stable, mature and platform independent with an easy to use C/C++ API. It has advanced joint types and integrated collision detection with friction. ODE is useful for simulating vehicles, objects in virtual reality environments and virtual creatures. It is currently used in many computer games, 3D authoring tools and simulation tools. This library is free software.
Croquet is a powerful open source software technology that, in the form of the Croquet Software Developer’s Kit (Croquet SDK), can be used by experienced software developers to create and deploy deeply collaborative multi-user online virtual world applications on and across multiple operating systems and devices. Derived from Squeak, the Croquet system features a peer-based messaging protocol that dramatically reduces the need for server infrastructures to support virtual world deployment and makes it easy for software developers to create deeply collaborative applications. Cobalt is a National Science Foundation-sponsored effort to develop an open source virtual world browser and authoring toolkit application based on the Croquet technology.
The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite.
The complete range of subject areas covered by the library includes,
Complex Numbers
Roots of Polynomials
Special Functions
Vectors and Matrices
Permutations
Sorting
BLAS Support
Linear Algebra
Eigensystems
Fast Fourier Transforms
Quadrature
Random Numbers
Quasi-Random Sequences
Random Distributions
Statistics
Histograms
N-Tuples
Monte Carlo Integration
Simulated Annealing
Differential Equations
Interpolation
Numerical Differentiation
Chebyshev Approximation
Series Acceleration
Discrete Hankel Transforms
Root-Finding
Minimization
Least-Squares Fitting
Physical Constants
IEEE Floating-Point
Discrete Wavelet Transforms
Basis splines
Unlike the licenses of proprietary numerical libraries the license of GSL does not restrict scientific cooperation. It allows you to share your programs freely with others.
R is a programming language and software environment for statistical computing and graphics. The R language has become a de facto standard among statisticians for the development of statistical software,[4][5] and is widely used for statistical software development and data analysis.[5]
R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, …) and graphical techniques, and is highly extensible. The S language is often the vehicle of choice for research in statistical methodology, and R provides an Open Source route to participation in that activity.
Software introduction in PDF (here). Example Sesion in page 78.
Eclipse is a multi-language software development platform comprising an IDE and a plug-in system to extend it. It is written primarily in Java and can be used to develop applications in Java and, by means of the various plug-ins, in other languages as well, including C, C++, COBOL, Python, Perl, PHP, and others.
In its default form it is meant for Java developers, consisting of the Java Development Tools (JDT). Users can extend its capabilities by installing plug-ins written for the Eclipse software framework, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Language packs provide translations into over a dozen languages.