WebGL-DOM Visualization Tool
This is an experiment in visualizing XML documents as Document Object Model (DOM) trees in more than two dimensions.
This happens through first transforming XML source into a JSON format, which is then transformed into a WebGL visualization.
The visualization tool is to showcase both atomic undo/redo operations and multiple models of "shadow content" inserted into the DOM. By modifying the JSON, we can simulate different DOM tree structures - essentially experimenting with "breaking the rules" of the standard DOM.
How do I get started?
Summary of set-up
If you just want to play with it, visit the home page and have fun!
This project uses a number of third-party libraries for support:
- three.js (http://threejs.org/) for WebGL rendering
- CodeMirror (http://codemirror.net/) version 5.4 for XML and JSON syntax highlighting
- Jasmine (http://jasmine.github.io/2.3/introduction.html) version 2.3.4 for unit tests
How to run tests
Check out the repository and open /tests.html .
I'm working on this, but in short: feel free to make improvements anywhere you want, except in the third-party libraries. Please file JIRA tickets first and consult with me (Alex Vincent) below on design questions.
Becoming a contributor
Contact Alex Vincent to be added to the project.
All tests are based on the Jasmine framework, which is surprisingly friendly.
For your own patches, Alex will review them. But generally speaking, if it works, it provides a genuine improvement and tests pass, you'll get approval to check in very easily.
For existing code (prior to August 1, 2015), code reviews are welcome!
The libraries above are exempt from all reviews and changes: assume they work and are very well tested. The libraries themselves may be upgraded wholesale at any time, based on stable releases from their home projects. (For instance, CodeMirror 5.5 is out right now.)
Who do I talk to?
Send an e-mail to Alex Vincent at firstname.lastname@example.org, with a subject line that starts with the words "WebGL-DOM", and you'll get an answer very soon!