Porting Accidental Noise Library to .NET

Published April 14, 2014
Advertisement
I've been inspired by the images that JTippetts' Accidental Noise Library can generate. However, these days I do very little C++ work so I felt like tinkering with a little project that would help me tip my toe back in this water and also have a bit of fun.

As a result, I decided to have a crack at porting Accidental to .NET. I'm aware that James Petruzzi already done a partial port and that Mike Tucker has integrated this partially into Unity3D, but this wasn't the exercise for me.

I wanted to a) have a little play with the noise b) understand the library and routines a little more and c) tinker with C++ again in a gentle porting project. If I have something cool or useful at the end of it, then it's a bonus.

Accidental is quite a nice system. It's effectively a series of modules that you configure and then chain together to get some pretty pictures out of the other end. Most modules typically have a "Source" and return results via a "Get" method; as such, the results of one module typically feed into another and so on until you get something useful out the other end.

The original Accidental library supports 2D (x,y), 3D (x,y,z), 4D (x,y,z,w) and 6D (x,y,z,w,u,v) modules/generators all off the same base. In my current implementation, I'm deliberately splitting the various parts into their various dimensional constituents. I don't know yet if this is the best approach, but it's making life easier for me.

I've ported over a bunch of stuff so far; but there's plenty to do.

In the original Accidental Noise Library, JTippetts used Lua to configure his pipeline. I'm going to look at using alternative, more C# friendly solutions to this - possibly JSON smile.png

Right now, everything's just in code so seeing the results of a tweak can be a little slow.

Here's some pictures:

oli_billow.png

Fractal: Billow (Default), autocorrected to -1,1 range and scaled to 6,6.

oli_cellular.png

Cellular: Scaled to 6,6

oli_fbm.png

Fractal: fBM, frequency 3

oli_rigidmulti.png

Fractal: Rigid Multi, octaves: 3, scaled to 6,6

I'll probably push the source up to GitHub at some point soon.
4 likes 1 comments

Comments

Matthewj234

I would be really interested in looking at the source for this in .Net, noise has always fascinated me.

April 15, 2014 08:59 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement