RogueViz is a non-Euclidean geometry engine by
Zeno and
Tehora Rogue.
It provides unique capabilities for visualizations, games, math art, and research in non-Euclidean geometry.
Originally created for
HyperRogue, a roguelike video game set in the hyperbolic geometry,
and then used for our research in
data visualization and representation, RogueViz has the following capabilities:
Non-Euclidean Geometry, Topology, and Tessellations
- Two-dimensional hyperbolic, Euclidean, and spherical geometry
- Three-dimensional geometries: H3, E3, S3, product geometries, twisted geometries (twisted H2xR, Nil, Berger sphere), Solv-like geometries. Represent points, isometries, geodesics
- Basic tessellations for all geometries, allowing RogueViz to simulate large-scale worlds where simpler solutions would fail
- A rather extensive catalog of tessellations in two-dimensional geometries (regular, Archimedean, other)
- Important quotient spaces having these geometries (e.g. all quotient spaces of E2, Klein quartic, elliptic plane/space, some H3 manifolds, torus-like manifolds
in E3/Nil/Solv)
- Most of known models and projections of the hyperbolic plane, as well as their analogs in other 2D and 3D geometries.
Non-trivial projections include the "hypersian rug model" (simulated hyperbolic crochet) and geodesic-based inner views of Thurston geometries. The user can move
the camera (using the UI or our animation systems).
See
here to learn about geometries, topologies, and tessellations.
Supported Technologies
- C++: high performance, compatibility with many libraries, runs in Windows/Linux/OSX/Android (the easiest to install in Linux)
- SDL/OpenGL: view the results and animations in real time on the computer screen. For 3D geometries both raytracing and primitive-based rendering are supported.
- OpenVR: our immersive visualizations can be explored using Virtual Reality! The non-Euclidean aspects of VR can be configured.
- Emscripten: RogueViz apps can be compiled to be run in browsers
- export/import PNG: export static images for the Internet, or use them in presentations or as textures
- export SVG: export static images for printing (research/visualization papers, etc.)
- export WRL: export 3D models e.g. for 3D printing (not tested)
- import OBJ: a common 3D model format; project existing 3D models to non-Euclidean geometries and render them
- export/import MP4: export animations as videos for Internet sharing (tested in Linux)
Auxiliary stuff
- Animation engine/expression parser: enter values like "exp(1..10)" in the UI, and the value will automatically change from exp(1) to exp(10) through the animation! Simple movements,
'smoothcam' system for more complex animations
- Presentation engine: make a sequence of visualizations into a presentation -- if the listeners ask any questions during the "slides", projections and geometries can be often changed on the fly!
Limitations
- available under GPL (GNU General Public License)
- unfortunately not well documented -- ask in the HyperRogue lounge on Discord for help
- mostly no work yet on 4+-dimensional geometries, non-homogeneous manifolds, etc.
- bugs may happen for more exotic combinations of projections/geometries/topologies/tesselations/features
Example projects using RogueViz
Research
- See here for RogueViz used for research in data visualization and representation
- A catalog of tessellations by Marek Čtrnáct
- We also research computational non-Euclidean geometry (tessellations, rendering, etc.)
Games
- HyperRogue, a mind-bending non-Euclidean puzzle roguelike, also includes some other mini-games in the HyperRogue world
- Bringris, a non-Euclidean falling block game
- Fifteen+4, non-Euclidean and topological variants of the classic puzzle (based on the work of Henry Segerman)
- Star Battle Geometries (puzzles designed by Pedro PSI)
Other math art
How to use
- Windows users who want to check out the live versions of RogueViz visualizations (controllable with keyboard or with VR) can download the pre-compiled version of RogueViz from
here. This includes the datasets for the data visualization experiments, a large selection of visualizations from Twitter, some presentations, etc.
- See here to run RogueViz in your browser (on powerful computers)
- The source code of RogueViz, and the demos, is on GitHub (but it does not include RogueViz data). The source code of the visualizations themselves
is in rogueviz. Compile with e.g. ./mymake -O3 -rv
Acknowledgments
This work was supported by:
- (2017-2019) the National Science Centre, Poland, grant DEC-2016/21/N/HS4/02100
- (2020-) the National Science Centre, Poland, grant UMO-2019/35/B/ST6/04456
Research papers related to RogueViz
- Celińska D., Kopczyński E., (2017). Programming languages in GitHub: A visualization in hyperbolic plane. ICWSM 727-728.
- Kopczyński E., Celińska D., Čtrnáct M., (2017). HyperRogue: playing with hyperbolic geometry. Proceedings of Bridges 2017: Mathematics, Music, Art, Architecture, Education, Culture, 9-16.
- Kopczyński E., Celińska D., (2018). Virtual Crocheting of Euclidean Planes in a 3-Sphere. Proceedings of Bridges 2018: Mathematics, Music, Art, Architecture, Education, Culture, 551-554.