8

http://bodybrowser.googlelabs.com/

I know the source of their data and even for real-time use, those meshes and textures are often hundreds of Kb or even several Mb each. Even low-res, it's hard to see how they are able to get it working within 1s of loading... I see some evidence of textures streaming if I immediately switch to a different layer but to get even the polygons downloaded in time is impressive.

How have they achieved this - super-low poly counts or just very clever progressive loading?

Mr. Boy
  • 60,845
  • 93
  • 320
  • 589
  • I just checked it out and it loaded several megabytes on the first access, which is then cached by the browser when browsing (no traffic when zooming in etc.) even after reloading. The textures don't really seem that high quality to me. Are you sure the data is that big? – Martijn Jul 08 '11 at 12:30
  • several megabytes would still take a substantial time to load, the _very_ best I might get is 1Mbyte/s on my broadband. Maybe their data is _heavily_ down-sized from the originals: http://www.3dscience.com/client_highlights/Google.php – Mr. Boy Jul 08 '11 at 13:33

2 Answers2

6

Some tricks Google do for fast initial Body load and general performance are delta data compression, limiting numeric precision and texture atlases.

Cache headers only help reduce this further on subsequent visits.

For rendering speed (which affects loading time since it's concurrent with that) they also do other staple tricks like vertex array aggregation, vertex array interleaving and GL state sorting.

Google I/O 2011: WebGL Techniques and Performance: http://www.youtube.com/watch?v=rfQ8rKGTVlg

Google Body presentation at WebGL Camp #3: http://www.youtube.com/watch?v=vsHHNClzJPg

xeolabs
  • 1,369
  • 1
  • 9
  • 16
3

It's all cache manipulation magic pal. I'm doing that on my game too to accelerate model, texture and audio loading. Their cache-control header is:

Cache-Control:public, max-age=31536000

Which tells the browser to keep all the data for a complete year without revalidating the cache (there's not even one roundtrip between the browser and the server till the full year passes).

It took me on my broadband with a cold cache 2.3 minutes to download 23.89 mbs, if you want so i can post the Chrome HAR file so you can inspect all my load times in detail.

Chiguireitor
  • 3,186
  • 1
  • 20
  • 26