• Stars
    star
    249
  • Rank 162,987 (Top 4 %)
  • Language
  • License
    MIT License
  • Created about 8 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A mostly javascript-centric resource / links list on procedural content generation (PCG).

Procedural generation

A mostly javascript-centric resource / links list on procedural content generation (PCG).

JavaScript modules

kchapelier/convchain

Vanilla javascript port of @ExUtumno's ConvChain.

kchapelier/convchain-gpu

Vanilla javascript/WebGL2 port of @ExUtumno's ConvChain.

kchapelier/wavefunctioncollapse

Vanilla javascript port of @ExUtumno's WaveFunctionCollapse.

kchapelier/cellular-automata

Cellular automata runner supporting a broad set of rule format in arbitrary dimensions.

kchapelier/poisson-disk-sampling

Poisson disk sampling in arbitrary dimensions.

kchapelier/ngram-word-generator

Word generation based on n-gram models, and a cli utility to generate said models from generic text files.

scijs/sphere-random

Sample random points on the surface of a n-dimensional hypersphere (a sphere of any dimension).

Fork allowing to use custom random number generators instead of Math.random.

davidbau/seedrandom

Seeded random number generator for JavaScript.

xixixao/noisejs

Javascript 2D and 3D Perlin & Simplex noise functions.

zsoltc/worley-noise

Worley noise (also called Cell noise) in JavaScript.

kjirou/generate-maze-by-clustering

Generate a 2D maze using a clustering algorithm.

evanw/csg.js

Constructive Solid Geometry in javascript. Create complex 3D geometries using Boolean operations like union and intersection to combine 3D solids.

galaxykate/tracery

Grammar-based english text generation.

sequitur/improv

A model-backed generative text library for JavaScript. An alternative to Tracery.

hughsk/heightmap-contours

Generate contour meshes from a 2D heightmap.

hughsk/cave-automata-2d

Generate 2D cave layouts using a single parametrized cellular automata rule.

gorhill/voronoi

Javascript implementation of Steven J. Fortune's algorithm to efficiently compute Voronoi diagrams on a 2D plane.

nlp_compromise/nlp_compromise

Lightweight natural language toolkit in Javascript for English with "good-enough" philosophy.

NaturalNode/natural

Heavyweight natural language toolkit in Javascript mainly for English but also with a few utilities for other languages.

dhowe/RitaJS

Another heavyweight natural language toolkit in Javascript for English.

Talks / videos

The PROCJAM (procedural generation jam) youtube channel

Include playlists for all the talks made for PROCJAM 2014, 2015, 2016 and 2017.

[Unite 2015] A coder's guide to spline-based procedural geometry

Generation of 3D geometries following a 3D BΓ©zier curve.

[Unite 2014] Generating Procedural Dungeons in Galak Z

Zach Aikman discusses all the techniques he experimented with to generate the 2D levels of Galak-Z (cellular automata, space partitioning and space filling curves).

[Nordic Unite 2013] Procedurally generated content in Sir, You Are Being Hunted

The two members of Big Robots explain the process used to generate the world in Sir, You Are Being Hunted (voronoi-delaunay dual graph, fractal heightmap, etc.) and present some earlier projects (including a classic 2D dungeon generation extended to 3D with elevation, stairs, etc.). The talk also touches subjects such as the player perspective on PCG (replayability, player-drive stories, ...), the necessity of PCG tools for small game studios and how it may impact the development of AI for the NPCs.

[Unite 2014] Dungeon of the Endless Rendering and Procedural Content

SΓ©bastien Dubois discusses the issues encountered with the initial dungeon generation algorithm (mostly boiling down to lack of control) and how they fixed it by implementing a template-based generation with multiple layers of abstraction (and an extensive toolset for the artists). The first 25 minutes of the talk is purely about the rendering but is not uninteresting either.

[Digital Dragons 2017] GPU-Based Run-Time Procedural Placement in 'Horizon Zero Dawn'

Jaap van Muijden explains the real-time procedural placement technique implemented in Horizon Zero Dawn on the GPU and how the game artists can use it to paint the world with ecotopes.

[IRDC 2016] Markov by Candlelight

Jason Grinblat discusses the use of markov chain to generate books in Caves of Qud, how the specificities of the algorithm matches the context of the game and how to insert meaningful bits of text in markov chains.

[Roguelike Celebration 2017] Procedurally generated histories in Caves of Qud

Jason Grinblat discusses how the history of the world is generated, how it is told to the player and how it is integrated in the gameplay.

[Roguelike Celebration 2018] Machine Learning and Level Generation

Ben Berman discusses advances, as well as his own investigation, in the use of Machine Learning and related algorithms in procedural content generation.

[Roguelike Celebration 2018] Procedural level design in Brogue and beyond

Brian Walker explains how the level generation in Brogue works. From how the rooms are placed to how the "puzzles" are added to bring life to the dungeon. Also discussed are his experiment in making a 2d platformer relying on PCG for its level.

[Nordic Game 2019] Texture Synthesis and Remixing from a Single Example

Anastasia Opara discusses the general idea as well as the pros and cons of multiple example-based texture synthesis techniques. The talk also addresses different use cases of this type of techniques and how it compares to other methods.

[Exilecon 2019] Procedural World Generation in Path of Exile

Rhys Abraham explains how the levels are generated in Path of Exile using rooms (hand-designed zones), tile keys and tile-based geometry. He also covers how the rooms can be overlapped to create more organic layouts, using custom rules to handle the tile key conflicts / combinations.

[The Thing 2020] Example-based procedural placement in a dialogue system.

A very well illustrated presentation, by Anastasia Opara, of concepts which can be used to implement procedural placement based on user provided examples.

Books / Ebooks

Seeds, the PROCJAM Zine

Zine made by the PROCJAM community featuring diverse looks at procedural content generation as a whole and insights on specific pcg methods.

pcgbook

A textbook about procedural content generation in games, fully readable online.

Texturing & modeling: a procedural approach

A classic reference on the subject by pioneers and creators of the featured methods and algorithms (Ken Perlin, Steven Worley, F. Kenton Musgrave, David S. Ebert and Darwyn Peachey).

Generative Art: A Practical Guide Using Processing

The book presents multiple examples of generative arts and explains the techniques used in some of them in the form of short tutorials (in Processing).

Scratchapixel 2.0

Free online ebook on computer graphics featuring articles on value noise, fractal noise, perlin noise and more in the appendix "Procedural Generation of Virtual Worlds". Sample codes are in C++.

Procedural Storytelling in Game Design

Composed of essays written by about 30 contributors and edited by Tanya X. Short and Tarn Adams, this book focuses on the procedural generation of narratives and explains some of the techniques used in existing games (such as Dwarf Fortress, The Sims, Frostpunk, Dungeons & Dragons, etc.) to populate their world with believable characters and backstories.

Dedicated websites and articles

Procedural Generation Tumblr

Procedural Content Generation Wiki

RogueBasin's articles about development

Procedural generation subreddit

The articles of Anders Hoff, aka inconvergent, on generative algorithms

The articles of Martin O'Leary, aka mewo2, on 2D map generation and language-driven naming

Explanation of the template based generator used in Spelunky

Amit Patel's article on 2D polygon map generation with biomes using Voronoi

Andy Gainey's article on procedural planet generation with subdivided icosahedrons, tectonic plates and air currents simulation

Generating Art with Code, a handbook to "Little Planet Procedural" by Alan Luo Procedural generation of landscape with canvas' 2d context.

Procjam tutorials PCG tutorials commissioned for the Procjam. The batch from 2017 covers topics such as the generation of music, the generation of text following predefined templates and the use of Wave Function Collapse.

When random numbers are too random: Low discrepancy sequences and The unreasonable effectiveness of quasirandom sequences. Two articles discussing the generation and properties of low discrepancy sequences (Van Der Corput, Halton, Hammersley, Fibonacci, Golden Ratio, ...) which can be used in some contexts as simple and efficient alternatives to poisson disc sampling or blue noise.

Procedural Generation For Dummies: Half Edge Geometry, by Martin Evans.

Exploring Procedural Content Generation for a 2D Space Exploration Game. A thesis covering multiple PCG schemes, their application in an actual game and the issues encountered by doing so.

Urban Procedural Modeling. A wealth of information on the subject of (modern) city generation.

Datasets and corpora

dariusk/corpora

A collection of small corpora available as JSON files for easy consumption.

caesar0301/awesome-public-datasets

A collection of "high-quality open datasets in public domains".

/r/datasets

Subreddit about datasets.

Kaggle.com

A collection of open datasets, mostly in CSV. The website requires you to setup an account in order to download datasets.

data.gov

The home of the U.S. Government’s open data. Like most government-led open data initiatives, the quality (and even the availability) of the datasets is very variable.

Wikipedia

More often than not, a good resource for the pragmatic developer who is willing to copy-paste or write two-liners of JavaScript to scrape the website directly in the browser's console.

More Repositories

1

wavefunctioncollapse

Javascript port of https://github.com/mxgmn/WaveFunctionCollapse
JavaScript
454
star
2

poisson-disk-sampling

Poisson disk sampling in arbitrary dimensions
JavaScript
189
star
3

cellular-automata-voxel-shader

Generate a voxel shader (for MagicaVoxel) from a custom CA rule
JavaScript
174
star
4

pseudofractals-voxel-shader

Voxel shader (for MagicaVoxel) to generate pseudofractals volumes
90
star
5

matcap-studio

An utility to tweak matcaps, with realtime visual feedback.
JavaScript
58
star
6

convchain

Javascript port of https://github.com/mxgmn/ConvChain
JavaScript
49
star
7

procjam2018

Graph.ical, a procedural texture authoring application developed for PROCJAM 2018.
JavaScript
44
star
8

PRWM

Packed Raw WebGL Model (PRWM) specifications and implementations.
JavaScript
38
star
9

qoijs

Quite-OK Image format encoder/decoder in vanilla JavaScript.
JavaScript
38
star
10

hexagrid-relaxing

JavaScript port of Cedric Guillemet's implementation of Oskar StΓ₯lberg's irregular grid in a hexagon.
JavaScript
28
star
11

convchain-gpu

Javascript/WebGL2 port of https://github.com/mxgmn/ConvChain
JavaScript
26
star
12

fast-2d-poisson-disk-sampling

Fast 2D Poisson Disk Sampling based on a modified Bridson algorithm
JavaScript
21
star
13

cellular-automata

Cellular automata runner
JavaScript
17
star
14

voxelShaders

Small collection of Voxel Shaders for MagicaVoxel
15
star
15

ngram-word-generator

Word generation based on n-gram models, and a cli utility to generate said models.
JavaScript
14
star
16

SimpleMidiInput.js

Abstraction over the MIDI input. Does all the byte crunching and exposes a straightforward event API with MIDI learn capability.
JavaScript
12
star
17

node-glitch

Glitched stream for intentional data corruption.
JavaScript
11
star
18

cellular-automata-gpu

GPU-based cellular automata runner
JavaScript
11
star
19

decode-dxt

Decoder for the DXT texture formats.
JavaScript
10
star
20

node-mathp

Math utility for node
JavaScript
9
star
21

jittered-hexagonal-grid-sampling

Jittered Hexagonal Grid Sampling
JavaScript
7
star
22

ndarray-to-vox

Convert a 3D ndarray to a vox file (Magica Voxel format)
JavaScript
6
star
23

gpx

[STALLED] Javascript library to write GPX files
JavaScript
6
star
24

Aural.js

An attempt at aggregating all my previous work on audio in a single library.
JavaScript
6
star
25

in-browser-language

Get the language of the browser
JavaScript
5
star
26

ti-selector

Simple selector for Titanium's native view elements.
JavaScript
5
star
27

stochastemes

Second entry for PROCJAM 2015
JavaScript
4
star
28

procjam2015

JavaScript
4
star
29

node-datafilter

Simple filtering for collections of objects
JavaScript
4
star
30

aural-sfz

A codec for SFZ soundfont files.
JavaScript
4
star
31

cellular-automata-rule-parser

Parser for S/B, S/B/C and R/T/C/N cellular automata rule formats.
JavaScript
4
star
32

microsound

JavaScript
4
star
33

in-browser-download

JavaScript
4
star
34

aural-interpolation

Interpolation library, aimed for audio-related processing.
JavaScript
3
star
35

procjam2016

Inund, a short contemplative game for PROCJAM2016
JavaScript
2
star
36

aural-scala

Codec of Scala scale files
JavaScript
2
star
37

node-get-source-map-consumer

Get an instance of SourceMapConsumer, when a sourcemap is available, for a given script.
JavaScript
2
star
38

mpc-hd-shaders

HLSL effects for MPC-HD
HLSL
2
star
39

grunt-glitch

A grunt task you shouldn't use.
JavaScript
2
star
40

procjam2020-smb3

SMB3 Procedural ROM Hack
JavaScript
2
star
41

migl-input

Micro Game Library : Input (keyboard and gamepads)
JavaScript
1
star
42

cellular-automata-playground

JavaScript
1
star
43

imgproc

An experimental and unpolished image processing utility for the command line
JavaScript
1
star
44

gist-load

Load the content of a Gist file in the browser
JavaScript
1
star
45

files2json

A simple cli tool to concat multiple files into a single json file.
JavaScript
1
star
46

procjam2014

Black Sea, a #procjam 2014 experiment
JavaScript
1
star
47

unicode

http://www.kchapelier.com/unicode/ | Simple tool to retrieve information on arbitrary UTF-8 characters
JavaScript
1
star
48

hexview

Experiment viewing the hexadecimal content of large files
JavaScript
1
star
49

jsstg2015

Repo for js➀stg 2015 - http://jp.wgld.org/jsstg/2015f/
JavaScript
1
star
50

algorithmicsynthjs

[on hold] Algorithmic Synth
JavaScript
1
star
51

BNDL

BNDL (binary bundle for arbitrary files) specifications and implementations.
JavaScript
1
star
52

geometricmusicjs

Remix of the Geometric Music app in javascript
JavaScript
1
star
53

procjam2019

PROCJAM 2019 - Generation of vintage engravings of leaves
1
star
54

cellular-automata-gpu-playground

⚠ Work in progress, purely experimental, do not use, highly explosive ⚠
JavaScript
1
star
55

ya-base62

Yet Another Base62, first and foremost designed to encode to and decode from structured strings.
JavaScript
1
star
56

von-neumann

Generates Von Neumann neighborhoods of any range/dimension
JavaScript
1
star
57

migl-rng

Micro Game Library : Random number generator (using seedrandom and noisejs)
JavaScript
1
star