Hexmap
Hexmap allows the exploration of arbitrary binary data in a pan and zoomable map-like visualization. Each byte is mapped to a single grayscale 8bit pixel. Row length and row starting offset can be adjusted in real-time, reflowing all pixels accordingly.
Hexmap also serves as a demonstrator and test project for a pure WebAssembly/WebGL based web application. Written in C++17, it can be compiled natively to any platform that supports at least (hardware accelerated) OpenGL ES 2.0. This is made possible by the following support libraries:
- GLFW, multi-platform backend for windowing and OpenGL context creation.
- GLM, high quality vector/matrix library.
- Glad, multi-platform OpenGL loader.
- Dear ImGui, extensive immediate mode UI framework (which primarily makes this possible).
The Emscripten toolchain is used for the web target. Calendar versioning is used for this project.
Limitations and known issues
- Touch input is currently missing. Other than that it does run on mobile devices (even mobile Safari) without problems.
- Mouse capture doesn’t release properly when dragging outside the browser window.
- Max file size is limited to 64 MB, bigger files get truncated. Very big files (1+ GB) can crash the application because of WASM memory limits and the Emscripten/GLFW internal handling of incoming files.
- UI and font scaling for high DPI displays, this feature is almost but not quite yet ready.
Dead Trees
Dead Trees is a game prototype / destructible physics experiment that is totally not inspired by the popular block laying game™ of unknown origin that takes the initial concept ad absurdum.
The general tech used is similar to Hexmap, the physics simulation is done using Box2D.
You can read more on the backstory in this post.