Toxiclibs
Encyclopedia
toxiclibs is an independent, modular open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 library collection for Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 and Processing
Processing (programming language)
Processing is an open source programming language and integrated development environment built for the electronic arts and visual design communities with the purpose of teaching the basics of computer programming in a visual context, and to serve as the foundation for electronic sketchbooks...

, released under the LGPL. In constant development since January 2007, currently the library consist of over 130 different classes, organized into 6 active packages. Each package is focused at specific computational design tasks. The classes are however purposefully kept fairly generic in order to maximize re-use in different contexts ranging from generative design, animation, interaction & interface design, data visualization to architecture and digital fabrication, use as teaching tool and more.

The libraries have been designed to have no further dependencies in order to maximize reuse and flexibility. Even though these libraries have been mainly developed for use in Processing
Processing (programming language)
Processing is an open source programming language and integrated development environment built for the electronic arts and visual design communities with the purpose of teaching the basics of computer programming in a visual context, and to serve as the foundation for electronic sketchbooks...

 related projects, there is no explicit dependency on the monolithic PApplet or any other classes of the Processing toolkit. This is intentional & should be considered as a feature.

toxiclibscore

  • 2D/3D vector maths, matrix, quaternion
  • 2D/3D geometry datatypes
  • intersection tests
  • splines
  • point octree
  • perlin noise & simplex noise
  • 3D mesh containers & file exporters
  • extensible waveform generators / oscillators
  • unit converters

audioutils

  • OpenAL / JOAL based 3D spatial audio playback
  • multi-timbral sound manager
  • support for non-realtime audio synthesis

colorutils

  • floating point color datatype in 3 simultaneous spaces: RGB, HSV, CMYK
  • named color presets/constants
  • weighted color theme generator
  • color theory strategies
  • color list
  • extensive color sorting features
  • multi-color gradient class
  • tonemap

simutils

  • 1D/2D cellular automata
  • 2D Gray-Scott reaction diffusion model
    Reaction–diffusion system
    Reaction–diffusion systems are mathematical models which explain how the concentration of one or more substances distributed in space changes under the influence of two processes: local chemical reactions in which the substances are transformed into each other, and diffusion which causes the...

  • 3D Diffusion limited aggregation
  • 2D fluid dynamics based on Jos Stam paper

verletphysics

  • 2D/3D particle physics with verlet integration
    Verlet integration
    Verlet integration is a numerical method used to integrate Newton's equations of motion. It is frequently used to calculate trajectories of particles in molecular dynamics simulations and computer graphics...

  • extensible particle constraint system

volumeutils

  • volumetric modelling with extensible volumetric brush classes
  • isosurface computation using marching cubes
  • isosurface file export as OBJ or STL format

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK