

Show HN: WebGL Fluid and Particles in Haxe - haxiomic
http://haxiomic.github.io/GPU-Fluid-Experiments/html5/

======
haxiomic
Click and drag to interact, I'm trying to get a handle on WebGL, so let me
know if it doesn't work with your setup :)

[https://github.com/haxiomic/GPU-Fluid-
Experiments](https://github.com/haxiomic/GPU-Fluid-Experiments)

~~~
jdonaldson
This is great, do you have a trip report? I've been using Haxe for a while,
but have done precious little WebGL.

~~~
haxiomic
I'm working on the write up for this project at the moment. The best aspect of
the language in my eyes is having a scriptable compiler with Haxe macros
(macros themselves are also written in Haxe). In this project there's a macro
that parses and extracts the variables from the shader glsl - so rather than
the usual method for passing variables to shaders:

    
    
      gl.useProgram(program);
      mouseCoordLocation = gl.getUniformLocation(program, 'mouseCoord');
    

... then later during rendering ...

    
    
      gl.useProgram(program);
      gl.uniform2f(mouseCoordLocation, mouse.x, mouse.y);
    

With Haxe macros it becomes:

    
    
      program.mouseCoord = mouse;
    

Best of all it works with autocomplete! Checkout shaderblox by Sunjammer to
try it for your self - it's quite experimental so in this project I'm using a
fork with a few of the bugs patched
[https://github.com/haxiomic/shaderblox](https://github.com/haxiomic/shaderblox)
.It also supports fairly rudimentary shader inheritance which is terribly
useful if you're not a fan of the rigidity of shader languages like glsl.

Alternatively, Ncannasse is working on a haxe-based shader langauge, hxsl
which when ready will be my language of choice - not least because we'll be
able to target glsl, AGAL and hlsl, maybe even Cg with a single codebase

------
cturhan
That's awesome. I didn't know something like Haxe existing for a long time.

------
novalis
Looks amazing. I like how people are adopting Haxe and making all this cool
stuff. Awesome work, thanks for sharing.

