Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Toxiclibsjs is an open-source library for computational design tasks with JavaScript. This library is a port of http://toxiclibs.org for java and processing.
branch: master

This branch is 125 commits behind hapticdata:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
build
docs
examples
lib
utils
.gitignore
.gitmodules
.npmignore
CHANGES.md
LICENSE.txt
README.md
index.js
package.json

README.md

Toxiclibsjs is an open-source library for computational design tasks with JavaScript. It is a port of Karsten Schmidt's Toxiclibs for Java and Processing. Toxiclibs.js works great with Canvas, with SVG or any ordinary DOM element. Examples pair with such fine libraries as: Processing.js, Three.js, or Raphael.js for SVG.

A few examples

additive_waves smooth_doodle polar_unravel circle_3_points line2d_intersection attraction2d draggable_particles softbody_square

Getting Started with Toxiclibs.js

Toxiclibs.js can be used in the following ways:

  • As a single javascript file loaded into a webpage, with the contents of the entire library within a global toxi object.
  • As AMD modules that can be loaded independently or in packages, via RequireJS
  • In Node.js applications, as AMD modules that require the 'requirejs' library for Node.js.

To use as a single javascript file:

//copy the file build/toxiclibs.js into your javascript folder
<script type="text/javascript" src="js/toxiclibs.js"></script>
<script type="text/javascript">
    var myVector = new toxi.geom.Vec2D(window.innerWidth,window.innerHeight).scaleSelf(0.5);
    var myColor = toxi.color.TColor.newRGB(128/255,64/255,32/255);
</script>

To use with RequireJS:

//copy the lib/ contents into your projects folder for loading modules
require(['toxi/geom/Vec2D', toxi/color/TColor], function(Vec2D, TColor){
    var myVector = new Vec2D(window.innerWidth,window.innerHeight).scaleSelf(0.5);
    var myColor = TColor.newRGB(128/255,64/255,32/255);
});

To use with Node.js:

npm install toxiclibsjs

then:

var toxi = require('toxiclibsjs'),
    myVector = new toxi.geom.Ve2D(0.5,0.5),
    myColor = toxi.color.TColor.newRGB(128/255,64/255,32/255);

There are many different ways to use toxiclibs.js. Most of the examples currently use Processing.js and are created using the java-syntax style of the original Processing. This can be helpful to those that are making the transition from Java, but can be confusing to others. I will explain the basics of using toxiclibs.js and the few differences between it and the original toxiclibs.

For comprehensive documentation, read the original libraries javadocs. As the library is still growing, you can compare that documentation to this list of implemented classes.

Toxiclibs.js follows the original package structure

The following objects are returned when loading the entire library

  • color - the color utils package
  • geom - the geometry utils package
  • internals - functionality used within the library
  • math - the math utils package
  • physics2d - the Verlet Physics 2D package
  • processing - the processing package, eases use with Processing.js
  • THREE - features to ease use with Three.js
  • utils - the utils package

http://haptic-data.com/toxiclibsjs was initiated on 1/5/2011 by Kyle Phillips http://haptic-data.com

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

http://creativecommons.org/licenses/LGPL/2.1/

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA

Something went wrong with that request. Please try again.