Progressive Mesh Streaming: Knowledge exchange



I’m going to write some sort of paper about Progressive Mesh Streaming for WebGL. Progressive Mesh Streaming is not a new technique, it already exists for many years. But it is particular interesting for web based 3D applications because you need to transfer all data of an asset over a (possibly slow) network before you can display it. To avoid the associated latency, you can try to compress 3D data in a way that allows streaming and progressive decoding.

In other words: You do not load the entire model and then parse/display it like with common 3D formats. Instead, you stream the data, parse single chunks and progressively increase the resolution of the model to the highest level.

Progressive Mesh Streaming seems to be a very popular topic in the scientific community. But I found no references about its practicability in real products so far. Does anyone have experience in the usage of Progressive Mesh Streaming in context of WebGL? Besides, could Progressive Mesh Streaming be potentially interesting/useful for your projects?

Making a json loader

Hi Michael,

Are you thinking of a progressive LOD streaming like in this example?

If so we and our partners/customers would be highly interested on that and would love to assist you where we can.

VisCircle Team


@VisCIrcle As announce, I’d like to share some studies and conclusions about Progressive Mesh Streaming in the browser. The text is part of my master’s thesis which is focused on web-based 3D engine design. Have a look at chapter 3.4 Progressive Mesh Streaming. It provides some sort of evaluation of this topic in the web context.

Engine-Design für webbasierte 3D- und VR-Anwendungen (3.3 MB)

Unfortunately, the thesis is in German and I did not have the time so far to translate certain parts into English. Sorry for this! Try to do this in the future. But since you guys (@VisCIrcle) are from Germany, it should be at least no problem for you^^.


For Tesseract i use progressive asset streaming for the most content, the larger the scene is and the more different assets can be managed spatially, the more it becomes useful to dynamically load/unload them. Impostors (billboard stripes) are loaded first as well as proxy models (lowest possible poly representation, basically LOD geometries). The system optionally uses a websocket connection intead single HTTP requests what makes a quiet big difference for a lot files.


Wow Michael!
Thank you very much.
Great Master Thesis!
We will share that across our team.


I do not know if this can help with anything… I created a progressive mesh/texture loader for SEA3D already a few months ago. All in one single file.


@Mugen87 please translate this to English! I’d love to read it.