A Processing/Java library for high performance GPU-Computing (GLSL).
+ 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
- Releases
- PixelFlow Website
- Processing IDE -> Library Manager
More Videos on Vimeo.
// 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); }-
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!
Windows, Linux, MacOSX
-
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
JRubyArt is a ruby wrapper for processing by Martin Prout (monkstone)




















