All Projects → diwi → Pixelflow

diwi / Pixelflow

Licence: mit
A Processing/Java library for high performance GPU-Computing (GLSL). Fluid Simulation + SoftBody Dynamics + Optical Flow + Rendering + Image Processing + Particle Systems + Physics +...

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Pixelflow

Pmtech
Lightweight, multi-platform, data-oriented game engine.
Stars: ✭ 478 (-51.12%)
Mutual labels:  opengl, glsl
Ouzel
C++ game engine for Windows, macOS, Linux, iOS, tvOS, Android, and web browsers
Stars: ✭ 607 (-37.93%)
Mutual labels:  opengl, glsl
Awesome Glsl
🎇 Compilation of the best resources to learn programming OpenGL Shaders
Stars: ✭ 530 (-45.81%)
Mutual labels:  opengl, glsl
Shadergen
Proof-of-concept library for generating HLSL, GLSL, and Metal shader code from C#,
Stars: ✭ 395 (-59.61%)
Mutual labels:  opengl, glsl
Bonzomatic
Live shader coding tool and Shader Showdown workhorse
Stars: ✭ 829 (-15.24%)
Mutual labels:  opengl, glsl
Taisei
A free and open-source Touhou Project fangame
Stars: ✭ 428 (-56.24%)
Mutual labels:  opengl, glsl
Glchaos.p
3D GPUs Strange Attractors and Hypercomplex Fractals explorer - up to 256 Million particles in RealTime
Stars: ✭ 590 (-39.67%)
Mutual labels:  opengl, glsl
Metalfilters
Instagram filters implemented in Metal
Stars: ✭ 272 (-72.19%)
Mutual labels:  glsl, filters
Renderpipeline
Physically Based Shading and Deferred Rendering for the Panda3D game engine
Stars: ✭ 814 (-16.77%)
Mutual labels:  opengl, glsl
Imogen
GPU Texture Generator
Stars: ✭ 648 (-33.74%)
Mutual labels:  opengl, glsl
Cameraview
📸 A well documented, high-level Android interface that makes capturing pictures and videos easy, addressing all of the common issues and needs. Real-time filters, gestures, watermarks, frame processing, RAW, output of any size.
Stars: ✭ 4,137 (+323.01%)
Mutual labels:  opengl, filters
Nau
Nau - OpenGL + Optix 3D Engine
Stars: ✭ 18 (-98.16%)
Mutual labels:  opengl, glsl
Ffmpeg Gl Transition
FFmpeg filter for applying GLSL transitions between video streams.
Stars: ✭ 335 (-65.75%)
Mutual labels:  opengl, glsl
Graphicsfuzz
A testing framework for automatically finding and simplifying bugs in graphics shader compilers.
Stars: ✭ 448 (-54.19%)
Mutual labels:  opengl, glsl
Colormap Shaders
A collection of shaders to draw color maps.
Stars: ✭ 315 (-67.79%)
Mutual labels:  opengl, glsl
Olive
Free open-source non-linear video editor
Stars: ✭ 5,682 (+480.98%)
Mutual labels:  opengl, glsl
sph opengl
SPH simulation in OpenGL compute shader.
Stars: ✭ 57 (-94.17%)
Mutual labels:  glsl, fluid-simulation
Gl Water2d
2D liquid simulation in WebGL
Stars: ✭ 260 (-73.42%)
Mutual labels:  glsl, fluid-simulation
Glsl Pathtracer
A GLSL Path Tracer
Stars: ✭ 634 (-35.17%)
Mutual labels:  opengl, glsl
Leaf3d
A lightweight 3D rendering engine based on modern OpenGL
Stars: ✭ 16 (-98.36%)
Mutual labels:  opengl, glsl

PixelFlow Header

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


Videos / Examples / Demos / Applications

Skylight Renderer

alt text alt text alt text alt text alt text

Softbody Dynamics

alt text alt text alt text

Computational Fluid Dynamics

alt text alt text alt text alt text alt text alt text

Optical Flow

alt text alt text alt text

Flow Field Particle Simulation

alt text alt text alt text

Flow Field - LIC

alt text alt text

Realtime 2D Radiosity - Global Illumination (GI)

alt text alt text alt text alt text alt text alt text alt text

Space Syntax

alt text alt text alt text


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


Processing/Java Alternatives

JRubyArt

JRubyArt is a ruby wrapper for processing by Martin Prout (monkstone)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].