Megastrata teaser video
Despite the patina of silence, the NoiseViewer project has been progressing in leaps and bounds these past few weeks. The internal modeling has begun to take shape, and it is actually possible to start exploring a few of these endless corridors.
The name has gradually started becoming “Megastrata”, as it morphs away from being an experiment, and starts getting more serious.
Here is a short teaser video:
A new build will be prepared soon, and we’ll continue the unending task of bringing this impossible structure to life.
In: Uncategorized · Tagged with: Megastrata, noiseviewer, preview, procedural content generation, showcase, teaser, video, youtube
Concept and design – a patchwork approach
In lieu of proper concept artwork or mock designs for a potential finished project, putting together photos discovered on Flickr has become a windfall of concept design.
Using Flickr’s new Gallery feature, I have put together a few megastructure explorations. These are built from other users’ photos, but represent a larger structure that crosses space and time to become the Megastructure we seek.
So far, there are three such explorations:
The feelings I get while going through these photos in their particular order is the same emotion the Megastrata simulation should give.
In: Uncategorized · Tagged with: architecture, concept, design, flickr, found artwork, game, Megastrata, megastructure, noiseviewer
Junctions and Overhauls [version 1.84]
The NoiseViewer has come a long way since its inception some months ago, but there is still much to do. The code is about to undergo another radical reconfiguration, this time extracting ourselves from the original 2d-oriented architecture, and cementing the World object as master over 3D entities.
The “ConnectingBoxes” layer has been retired, having been superseded by the JunctionBoxes layer. This is by no means a completed structure, but we are certainly getting closer:
Head on down to the NoiseViewer information page to grab the latest version.
In: Uncategorized · Tagged with: 1.84, architecture, boxes, code, connectivity, disjoint sets, noiseviewer, procedural content generation, redesign, structure
dev twitter account
Follow up-to-date tweets on the development of the NoiseViewer and other Megastructure projects on Twitter with @megastrata.
In: Uncategorized · Tagged with: dev, Megastrata, meta, noiseviewer, site news, twitter
Disjoint sets and connectivity (version 1.83)
This version of the NoiseViewer provides a new layer type: ConnectingBoxes. Connecting boxes build a rudimentary network of paths throughout the visible render window. It does this by taking advantage of a data structure called Disjoint Sets, using the Union and Find algorithms. Cells try to be connected as much as they can, and paths tend to form only when needed. This behavior will surely change in future versions, but it is a nice start.
The XML format has been broken again (that is, will not read XML files generated by older versions), and will probably be broken again soon.
Note the “Reload defaults” button – it loads the screen you see here.
The new version is available on the download page, in Windows and OS X binaries, and source code distribution.
In: Uncategorized · Tagged with: algorithms, boxes, connectivity, disjoint sets, noiseviewer, procedural content generation, pseudorandom, union-find
NoiseViewer Version 1.8: leaping to the third dimension
The NoiseViewer has been improved once again. Today’s version brings 3D pattern generation capability. Albeit a simple implementation, but nonetheless a start.
Building in 3D is available by choosing the “Boxes” layer type, and clicking “Change base”. (Boxes are not available as a sub-layer.) Here is a screenshot of the boxes in action. Here, their widths are controlled by an underlying Noise layer:
And here, we see noise driving two variables: width and height. This demonstrates how future layers will have a multitude of variables, each allowing a plug-in style approach to building complex patterns.
This version has also been built in Release mode for the first time (Windows). Among other things, performance gains a significant boost.
A great deal of code has been refactored, including the XML writer/reader. Please note that older XML files will not load in this version.
In order to download this latest version, see the information and download page.
In: Uncategorized · Tagged with: 1.8, 3d, boxes, noise, noiseviewer, procedural content generation
Mac version, new information page
Wolfgang has kindly provided a Mac OS X build for the NoiseViewer. This download and further information available on the new NoiseViewer Information and Downloads page.
In: Uncategorized · Tagged with: code, information, meta, news, noiseviewer
NoiseViewer, version 1.75
Overview of version 1.75
Certain breakthroughs have led us to a plethora of new and amazing noise! We have made the leap from continuous noise to discrete noise patterns, which will help us later.
Here is a nice island, which is trivial to make in the latest version:
(XML)
And here are some shots of discrete noise:
(XML)
Discrete layers (like the squares and circles) are exciting because they represent actual structural entities in the future Megastructure simulation.
And if that wasn’t enough for this version, Wolfgang fixed XML input and output on OS X, as well as a number of annoying visual bugs! Due to a “CTRL” button issue on mac, we also added right-click as an alternative way to zoom in and out of the image.
Features on the way
The upcoming immediate goals are:
- Easy image output
- More layer types
- Beginning 3D layers built on top of discrete layer types
Standard boilerplate
From what I understand of the licenses, I am allowed to use these libraries. Please understand that the 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.
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.
Compiled executable (Windows, ~379KB): NoiseViewer_v1.75.zip
Source code, libraries and projects (Visual Studio 2008/OS X, ~4,277KB): NoiseViewerSource1.75.zip
Feedback would be greatly appreciated!!
In: Uncategorized · Tagged with: 3d, circles, code, discrete noise, procedural content generation, pseudorandom, simplex noise, squares
Circles and Squares
Overview of version 1.6
Hello, and welcome to version 1.6 of the famous NoiseViewer. This “release” has a number of new and amazing surprises. For instance: thanks to the TinyXML library, now you can save and load your creative patterns to an XML file (not yet supported on OS X).
Also, new layer types are starting to emerge. Not only can you mix layers of noise, but now infinite planes of circles and squares have stepped into the ring!
Here are some trippy circles, made by using noise as the input for the radii of the circles:
This will probably change in the near future (ie. it will break). But I like how it pans. You can view this yourself by importing the XML that describes it:
<?xml version="1.0" ?>
<NoiseViewer>
<Layers>
<Layer TypeID="2" x="5.288616" y="-5.674968" zoomx="21.007694" zoomy="21.007694">
<Variables>
<Variable name="Radius" MaxValue="10.000000" MinValue="0.001000" OverrideValue="2.000000">
<Layer TypeID="0" x="0.507875" y="-1.262280" zoomx="3.183013" zoomy="3.183013">
<Variables>
<Variable name="Cutoff" MaxValue="1.000000" MinValue="-1.000000" OverrideValue="0.500000" />
</Variables>
</Layer>
</Variable>
<Variable name="Spacing" MaxValue="10.000000" MinValue="0.001000" OverrideValue="2.000000" />
</Variables>
</Layer>
</Layers>
</NoiseViewer>
Or, you can download the XML here: Trippy circles.xml
Features on the way
The upcoming immediate goals are:
- More layer types
- More flexibility in layers
- More general layer options
Standard boilerplate
From what I understand of the licenses, I am allowed to use these libraries. Please understand that the 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.
Click and drag to pan around the noise. CTRL+click-and-drag up and down adjusts the zoom level. Shift+click-and-drag adjusts the noise cutoff point.
Compiled executable (Windows, ~379KB): NoiseViewer_v1.6.zip
Source code, libraries and projects (Visual Studio 2008/OS X, ~4,376KB): NoiseViewerSource1.6.zip
Feedback would be greatly appreciated!!
In: Uncategorized · Tagged with: circles, code, example, layers, procedural content generation, pseudorandom, squares, tinyxml, XML
NoiseViewer – version 1.5
The NoiseViewer project has been progressing slowly but surely. This new version paves the way for sub-layers to control variables in higher layers of noise.
For instance, you assign an “input” layer to define the changing cutoff value for every point in the top layer. Here is a screenshot illustrating this feature in action:
This version also fixes a number of stability issues. The code is much cleaner, though still not as readable as I would like.
Furthermore, this release is notable for compatibility with OS X. Mac compatibility was graciously added/fixed/tweaked by Wolfgang, and all relevant project files can be found in the source package under the “osx” directory. Thanks, Wolfgang!
From what I understand of the licenses, I am allowed to use these libraries. Please understand that the 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.
Click and drag to pan around the noise. CTRL+click-and-drag up and down adjusts the zoom level. Shift+click-and-drag adjusts the noise cutoff point.
Compiled executable (Windows, ~339KB): NoiseViewer_v1.5.zip
Source code, libraries and projects (Visual Studio 2008/OS X, ~3,571KB): NoiseViewerSource1.5.zip
Feedback would be greatly appreciated!!
In: Uncategorized · Tagged with: code, glut, osx, procedural content generation, simplex noise, sublayers