Jg-plot_v0.1 / simple julia - webGl passthrough

It’s pretty basic currently, just does 2d plots, but the potential is there for 3d animation etc

size is 8Kb, most of which is the html / js / glsl getup

basic usage: jg_plot("./test", rand(4, 25)) will give you a test.html file with 4 randomly coloured squiggly lines, currently likes it’s column vectors transposed, ie jg_plot("./test", rand(25)')

Would you be interested in collaborating on a WebGL plotting backend for Makie?
I’ve a simple prototype for sending GLVisualize OpenGL shader to ThreeJS via WebIO!
We can expand that for all GLVisualize primitives and get a nice high level plotting API via Makie :slight_smile:
Let me know if you’re interested, I can publish the repository containing the prototype.

It does sound quite interesting =)
Not sure if my webgl skills are quite up to task but i’ll have a look

Ok I published the proof of concept here: https://github.com/SimonDanisch/WebVisualize.jl

Looks pretty nice, could possibly use gl.Points with pointsize instead of triangles for the demo if you wanted to save using a few coords. I’d guess textures would still be allowed

– deleted some old links

It’s getting there, translated forward a bit, still has the z-cutoff / static coloured squares in place of the nice circles, not much done on the julia side though. Added the mesh function
All generated from julia, but with manual tweaks of the embedded webgl in jg_plot. This might have to do for now =)


It’s not looking too bad now, still quite simple / code isn’t the tidiest…

output can be quite nice though


z = jmesh(5,5,10);
jg_plotMesh("testmesh", z);

Cobbled together a bit of network IO, plotting to localhost:8088/Graph seems pretty nice

  • 79 sec html string generation with mesh 200x200x200 / 3 point per poly
    10 sec / 350Mb browser transfer returned an "allocation size overflow browser-side =)

  • ~10 frames per sec on 100x200x100 points -Firefox w/ LLano integrated graphics

  • ~20 fps with 1,000,000 points / +300,000 polys / 11 sec html string gen /
    1:1 point packing - transfer size 42Mb

Minimalist web browser interface to julia
jport3 @ nofile.io

jlportX(8088); - needs a new port each call, but only needs to be called once
http://localhost:8088/HTML - WebGui starter/test page

Cgraphdata = "jgplot html out / etc";
http://localhost:8088/Graph - Web plots