PixelFlow
A Processing/Java library for high performance GPU-Computing (GLSL).
Features
+ Fluid Simulation (GLSL)
- Jos Stam, Real-Time Fluid Dynamics for Games
- Particle Sytems
- Flow Field Visualisation
- Streamlines
- ...
+ Flow Field Particles (GLSL)
- Collision Detection, Particle <-> Particle
- Collision Detection, Particle <-> Obstacle
- Cohesion
- Verlet Integration
- FlowField/SDF(Signed Distance Field) based
- Streamlines
- ...
+ Softbody Dynamics (CPU, GLSL is coming)
- 2D and 3D
- Collision Detection
- Cloth, Grids, Chains, Rigid Folding ...
- Particle Systems
- ...
+ Skylight Renderer (GLSL)
- Interactive/Realtime Viewport Renderer
- Ambient Occlusion
- Diffuse Shading
- ShadowMapping
- ...
+ PostProcessing Filters (GLSL)
- Box Blur
- Binomial Blur
- Gauss Blur
- Gauss Blur Pyramid
- Median
- Bilateral Filter
- Custom Convolution Kernel
- DoG (Difference of Gaussian)
- BackgroundSubtraction
- Difference
- Laplace
- Sobel
- Gamma Correction
- Luminace
- Thresholding
- Harris Corner Detection
- Optical Flow
- Bloom
- Depth of Field (DoF)
- Liquid FX Filter
- Summed Area Table (SAT)
- Distance Transform (Jumpflood), Voronoi, Distance Map
- Min/Max (global)
- Min/Max (local)
- Merge Shader
- FlowField
- Line Integral Convolution (LIC) / Streamlines
- ...
+ AntiAliasing (GLSL)
- MSAA (Processing Default)
- FXAA
- SMAA
- GBAA/DEAA
+ Shadertoy (GLSL)
- Wrapper for running existing Shadertoy sketches inside Processing.
+ Utils
- HalfEdge
- Subdivision Polyhedra
- Sampling
- GLSL-Shader PreProcessor (#define, #include)
- GLSL-Shader Uniform Caching
- ...
JavaDoc: http://thomasdiewald.com/processing/libraries/pixelflow/reference/index.html
Download
- Releases
- PixelFlow Website
- Processing IDE -> Library Manager
Videos / Examples / Demos / Applications
Skylight Renderer
Softbody Dynamics
Computational Fluid Dynamics
Optical Flow
Flow Field Particle Simulation
Flow Field - LIC
Realtime 2D Radiosity - Global Illumination (GI)
Space Syntax
More Videos on Vimeo.
Getting Started - Fluid Simulation
// FLUID SIMULATION EXAMPLE import com.thomasdiewald.pixelflow.java.DwPixelFlow; import com.thomasdiewald.pixelflow.java.fluid.DwFluid2D; // fluid simulation DwFluid2D fluid; // render target PGraphics2D pg_fluid; public void setup() { size(800, 800, P2D); // library context DwPixelFlow context = new DwPixelFlow(this); // fluid simulation fluid = new DwFluid2D(context, width, height, 1); // some fluid parameters fluid.param.dissipation_velocity = 0.70f; fluid.param.dissipation_density = 0.99f; // adding data to the fluid simulation fluid.addCallback_FluiData(new DwFluid2D.FluidData() { public void update(DwFluid2D fluid) { if (mousePressed) { float px = mouseX; float py = height-mouseY; float vx = (mouseX - pmouseX) * +15; float vy = (mouseY - pmouseY) * -15; fluid.addVelocity(px, py, 14, vx, vy); fluid.addDensity (px, py, 20, 0.0f, 0.4f, 1.0f, 1.0f); fluid.addDensity (px, py, 8, 1.0f, 1.0f, 1.0f, 1.0f); } } }); pg_fluid = (PGraphics2D) createGraphics(width, height, P2D); } public void draw() { // update simulation fluid.update(); // clear render target pg_fluid.beginDraw(); pg_fluid.background(0); pg_fluid.endDraw(); // render fluid stuff fluid.renderFluidTextures(pg_fluid, 0); // display image(pg_fluid, 0, 0); }
Installation, Processing IDE
-
Download Processing 3
-
Install PixelFlow via the Library Manager.
-
Or manually, unzip and put the extracted PixelFlow folder into the libraries folder of your Processing sketches. Reference and examples are included in the PixelFlow folder.
-
Also make sure you have the latest graphics card driver installed!
Platforms
Windows, Linux, MacOSX
Dependencies, to run the examples
-
Video, by the Processing Foundation
https://processing.org/reference/libraries/video/index.html -
ControlP5, by Andreas Schlegel
http://www.sojamo.de/libraries/controlP5 -
PeasyCam, by Jonathan Feinberg
http://mrfeinberg.com/peasycam -
HE_Mesh, by Frederik Vanhoutte
https://github.com/wblut/HE_Mesh
Processing/Java Alternatives
JRubyArt
JRubyArt is a ruby wrapper for processing by Martin Prout (monkstone)

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.























