As of December, 2009, the Megastrata project is on indefinite hiatus. See the relevant post for more details.
All code and executables remain available. If you have any questions, please don’t hesitate to contact me.
The Megastrata (“NoiseViewer”) simulation is the flagship project of the Megastructure Development Blog. Its goals are to provide a simple, intuitive way to explore and edit procedurally-generated patterns.
Click and drag to pan the current layer. Right-click-drag or CTRL+click-and-drag adjusts the zoom level. Shift+click-and-drag adjusts the current layer’s selected parameter.
You add base 3D layers by selecting a target layer type from the dropdown, and clicking “Add layer”. Layers have parameters that can be changed globally (by using the shift+drag function). Alternatively, a 2D sub-layer may be assigned, whose output is used to determine the parent-layer’s parameter for every point visible. Layers may be nested arbitrarily deep. Navigate into and out of each layer by selecting “Edit input” or “Go to parent”.
Press ‘g’ to switch between top-down and character visual modes. When in “character mode”, you use WASD to move, and click-drag to change your direction.
Linked and included libraries used in accordance with their licenses:
- FreeGLUT - MIT License
- GLUI - LGPL
- TinyXml - Zlib License
- SimplexNoise1234 - GNU General Public License
- DisjointSets – Emil’s Giveaway License
- Gaussian Filter
The NoiseViewer itself is released via the MIT License. Copies of all licenses are now included (starting with version 1.83) in the source and binary distributions below.
All code and programs linked to below are provided “as-is”. Also note that running any program found on the internet carries risk, and the responsible user always scans for viruses, etc.
Latest Version – 1.88 (2009-11-13)
Compiled executable (Windows, ~242KB): Megastrata_v1.88.zip
Source code, libraries and projects (VS2008/OS X,~4,827KB): MegastrataSource1.88.zip
Compiled executable (Windows, ~242KB): NoiseViewer_v1.87.zip
Source code, libraries and projects (VS2008/OS X,~4,696KB): NoiseViewerSource1.87.zip
Compiled executable (Windows, ~238KB): NoiseViewer_v1.86.zip
Compiled executable (OS X, ~127KB): NoiseViewer_v1.86_Mac.zip
Source code, libraries and projects (VS2008/OS X, ~4,604KB): NoiseViewerSource1.86.zip
Compiled executable (Windows, ~235KB): NoiseViewer_v1.84.zip
Compiled executable (OS X, ~116KB): NoiseViewer_v1.84_Mac.zip
Source code, libraries and projects (VS2008/OS X, ~4,585KB): NoiseViewerSource1.84.zip
Compiled executable (Windows, ~229KB): NoiseViewer_v1.83.zip
Compiled executable (OS X, ~107KB): NoiseViewer_v1.83_Mac.zip
Source code, libraries and projects (VS2008/OS X, ~4,475KB): NoiseViewerSource1.83.zip
1.8 (first version supporting 3D entities)
Compiled executable (Windows, ~207KB): NoiseViewer_v1.8.zip
Compiled executable (OS X, ~81KB): NoiseViewer_v1.8_Mac.zip
Source code, libraries and projects (VS2008/OS X, ~4,460KB): NoiseViewerSource1.8.zip
Compiled executable (Windows, ~379KB): NoiseViewer_v1.75.zip
Compiled executable (OS X, ~70KB): NoiseViewer_v1.75_Mac.zip
Source code, libraries and projects (VS2008/OS X, ~4,277KB): NoiseViewerSource1.75.zip
Besides not being complete in any sense, here are some bugs that need to be addressed:
- Mac: something’s wrong with rendering. This is probably because of my flagrant misuse of OpenGL. It works fine on my Windows box.
- Lame GUI – it’s barely functional. More robust GUI will eventually be needed.
- Eli – Design, code.
- Wolfgang – Mac compatibility, testing. Found and destroyed a number of bugs.
- Daniel – algorithm and design consultant.