All Projects → jasonsturges → perlin-toolkit

jasonsturges / perlin-toolkit

Licence: MIT license
Animated perlin noise textures

Programming Languages

actionscript
884 projects

Projects that are alternatives of or similar to perlin-toolkit

Noisy-Nodes
Adds various noise generation nodes to Unity Shader Graph, including 3D noise nodes.
Stars: ✭ 186 (+1140%)
Mutual labels:  noise, perlin-noise
UE4-Noise-BlueprintLibrary
UE4 plugin: Noise Blueprint Function Library
Stars: ✭ 25 (+66.67%)
Mutual labels:  noise, perlin-noise
procedural-advml
Task-agnostic universal black-box attacks on computer vision neural network via procedural noise (CCS'19)
Stars: ✭ 47 (+213.33%)
Mutual labels:  noise, perlin-noise
Prando
Deterministic pseudo-random number generator for JavaScript and TypeScript
Stars: ✭ 66 (+340%)
Mutual labels:  random-generation, noise
jRand
A Java library to generate random data for all sorts of things. Java random data faker
Stars: ✭ 27 (+80%)
Mutual labels:  random-generation
ConvectionKernels
Fast, high-quality texture compression library for many formats
Stars: ✭ 40 (+166.67%)
Mutual labels:  textures
expresso
Expresso! Exporter is a Photoshop extension aimed at improving the texturing workflow for 3D Artists. It automatically exports textures to common file formats (TGA, PNG, etc.) out of PSDs containing multiple maps.
Stars: ✭ 57 (+280%)
Mutual labels:  textures
Pydbgen
Random dataframe and database table generator
Stars: ✭ 191 (+1173.33%)
Mutual labels:  random-generation
YouTube tutorial
I store all the code I used in my YouTube tutorial here. Feel free to download and play around them😉
Stars: ✭ 56 (+273.33%)
Mutual labels:  perlin-noise
FastPCC
Compute interstation correlations of seismic ambient noise, including fast implementations of the standard, 1-bit and phase cross-correlations.
Stars: ✭ 24 (+60%)
Mutual labels:  noise
keras gradient noise
Add gradient noise to any Keras optimizer
Stars: ✭ 36 (+140%)
Mutual labels:  noise
Perlin-Noise-3D-Voxel-Generator
Voxel generator based on perlin 3d noise | Python OpenGL
Stars: ✭ 22 (+46.67%)
Mutual labels:  perlin-noise
witnet-solidity-bridge
Witnet Bridge for EVM-compatible blockchains
Stars: ✭ 46 (+206.67%)
Mutual labels:  random-generation
GroundGrowing
Open Source Unity3d Planetary Terrain Editor Extension with incremental background updates via multithreading
Stars: ✭ 66 (+340%)
Mutual labels:  noise
FlowAgents
Perlin noise based flow agents made in Unity 3D.
Stars: ✭ 21 (+40%)
Mutual labels:  perlin-noise
Stat
Statistics package for Go [DEPRECATED]
Stars: ✭ 198 (+1220%)
Mutual labels:  random-generation
C-Raytracer
A CPU raytracer from scratch in C
Stars: ✭ 49 (+226.67%)
Mutual labels:  textures
sparksl-noise
minimum proof of concept about procedural noise generation in SparkAR's shader language (SparkSL).
Stars: ✭ 16 (+6.67%)
Mutual labels:  noise
Unity-Noises
Collection of noises functions for Unity.
Stars: ✭ 26 (+73.33%)
Mutual labels:  noise
RandomGenKt
Kotlin port of RandomGen
Stars: ✭ 28 (+86.67%)
Mutual labels:  random-generation

Perlin Toolkit

Randomly generated background animations using perlin noise producing unique experiences each instance.

screen capture

Video demonstration at YouTube

Presets

Choose a preset for animation to select an atmosphere of:

  • Aether — Fluffy upward movement
  • Ambient — Dusty still deep color tones
  • Arc — High voltage electric arcs
  • Atomic Cloud — Plumes of smokey mushroom clouds
  • Aurora — Gentle sweeping dancing lights
  • Caustic — Underwater patterns
  • Fog — Dense white mist
  • Fusion — Fast bursts of bright light
  • Gasoline — Rusty detailed smog
  • Incandescent — Soft light lit by white hot wire
  • Ink — Blotchy puddles spilling
  • Lace — Soft still of whites with a touch of color
  • Lava — Pools of red magma flowing
  • Luminous — Magical poofs of clouds
  • Marble — Still stone pattern
  • Oil — Slicks of rich color floating on the surface of water
  • Rotary — Dark circular movement
  • Sulfur — Rusty still, very similar to gasoline texture
  • Throttle — High speed blur passing by
  • Vortex — Rapid intense movement, similar to fusion texture

Getting Started

PerlinTexture is a DisplayObject, simply added to the stage. Implementing BitmapData, it includes functionality to generate perlin noise, animate per frame, as well as handle resize operations.

Using the Perlin Toolkit

Perlin textures may be implemented via pure ActionScript such as:

import labs.jasonsturges.perlin.texture.PerlinTexture;
import labs.jasonsturges.perlin.texture.PerlinTextureStyles;

var perlinTexture:PerlinTexture = new PerlinTexture(300, 300,
                                                    PerlinTextureStyles.AETHER());
addChild(perlinTexture);

This would create a 300x300 pixel animated perlin texture using the AETHER preset, added to the display list.

Using Presets

Presets are provided via the PerlinTextureStyles factory utility, which can be applied to a perlin texture instance via the style property, such as:

perlinTexture.style = PerlinTextureStyles.LUMINOUS();

Styles may be referenced by name, using the PerlinTextureStyles.from() method, as in:

perlinTexture.style = PerlinTextureStyles.from("LUMINOUS");

Styles may be set realtime on a perlin texture instance. Below, styles are randomly applied to an instance:

var styles:Vector.<String> = new <String>[
    "AETHER",
    "ATOMIC_CLOUD",
    "FOG",
    "LUMINOUS",
    "OIL"
];

var perlinTexture:PerlinTexture = new PerlinTexture(300, 300);
addChild(perlinTexture);

var timer:Timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER, function ():void {
    perlinTexture.style = PerlinTextureStyles.from(styles[Math.floor(Math.random() * styles.length)]);
});

timer.start();

Best Practices

Perlin noise is computationally intensive, and should not be overused in an implementation. Overuse will slow frame rate or even lock runtime. Both size and perlin operations need consideration for best performance.

Limit octaves to 8 or lower. Too many octaves will freeze the runtime.

For larger viewport bounds, it is recommended to scale a smaller instance. For example, generate perlin noise at 300x300 pixels and then upscale to fill a region. As perlin noise is abstract, it typically looks good at any scale.

The following example creates a perlin texture instance at 300x300, then resizes to fill the stage. Resize the viewport window to review quality at different sizes.

package {
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;

import labs.jasonsturges.perlin.texture.PerlinTexture;
import labs.jasonsturges.perlin.texture.PerlinTextureStyles;

public class Example extends Sprite {

    protected var perlinTexture:PerlinTexture;

    public function Example() {
        stage.scaleMode = StageScaleMode.NO_SCALE;
        stage.align = StageAlign.TOP_LEFT;

        // Instantiate at 300x300 pixels:
        perlinTexture = new PerlinTexture(300, 300, PerlinTextureStyles.AETHER());
        addChild(perlinTexture);

        // Resize by scaling
        resize(stage.stageWidth, stage.stageHeight); // or dispatch a resize event
        stage.addEventListener(Event.RESIZE, resizeHandler);
    }

    protected function resize(width:Number, height:Number):void {
        perlinTexture.scaleX = width / 300;
        perlinTexture.scaleY = height / 300;
    }

    protected function resizeHandler(event:Event):void {
        resize(stage.stageWidth, stage.stageHeight);
    }

}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].