Skip to content
Shane Saxon edited this page Aug 19, 2019 · 14 revisions

ANTz WebGL version is UNDER DEVELOPMENT!!!!

Advances in web technologies have made a browser version of ANTz feasible using:

  • WebGL for OpenGL drawing.
  • WebAssembly to use C code in the browser.
  • JavaScript for browser interaction.
  • Emscripten development environment.

The need for delivering data through a browser is essential (and required) for many use cases and users can always switch over to the ANTz desktop app for greater functionality and load the same data! The ANTz WebGL client is a 'LITE' version of the ANTz app.

ANTz WebGL key features:

  • Runs in a browser on mobile (Android, iOS) and desktop (Linux, OSX & Windows).
  • Load ANTz datasets from a MySQL server or using a (static scene) glTF file.
  • Texture map support.
  • Text Tags (toggle on/off)
  • Object picking to auto-center (navigation methods).
  • 'U' key functionality opens 3rd party webpages with record_id or custom URL.
  • Hide / Unhide by branch-level.

*Requires an HTML5 compatible browser with WebGL support (most of them).

3D drawing with WebGL 1.0 allows OpenGL ES 2.0 functionality and has similar performance (to ANTz app) for drawing large static scenes. In general, the C app will always have greater functionality and performance (more data, faster and lower latency). We can use WebAssembly to directly port app code that is written in C. Some functions do require JavaScript, which is inherently slower, but provides necessary interaction with the browsers environment. We plan to start with a minimal (ANTz-LITE) implementation, and in time we can build-out the functionality, such as Kinematic (topological animation). The browser security model also imposes limitations and some key functionality relies upon 3rd party libraries only available with an app (such as OSC support). However, implementing an ANTz server-client architecture can help. Datasets are generated by the ANTz app (server), which can be automated to provide live data updates.

ANTz 'App' vs 'WebGL':

  • App is the fastest and most fully featured version of ANTz!
  • App runs only on desktop Windows, OSX (and occasionally Linux).
  • WebGL runs on just about any desktop OS or mobile device (Android, iOS, etc.)
  • WebGL version has inherent limits on functionality (such as 3rd party C libraries.)
  • WebGL uses WebAssembly (for C) & Javascript, vs the desktop 'app' is native C.

Worth noting, that with substantial efforts (people with funds to optimize and build-out) the gap between the app and web versions can be substantially narrowed.


References

WebGL + Three.JS + WebAssembly + Emscripten... and a new app framework


Cross-Domain Frameworks to Consider

These support OSX, MSW, Linux, Android, iOS and WebAssembly

Related issues:

  • #223 - 3D Model Export
  • #250 - WebGL browser using JavaScript with RESTful exchange
  • #251 - JavaScript API using RESTful JSON exchange
Clone this wiki locally