What I've learned about flow fields so far.
This article will describe the methods and concepts I used to create the series of generated artworks pictured below. I've tried to visualize the algorithms and provide some code samples. The code samples are written in a Typescript with some simplifications so that the code is readable on mobile and to make them more concise and easy to follow. The general algorithms can easily be ported to any language though, I have for instance done some implementations using Rust. As a note, far more talented people than me have written articles on the subject upon which my work is very obviously based. I recommend reading that one too! The main driving force behind these flow field images is usually a noise function. Without regurgitating the wikipedia article, a noise function is a function that takes a coordinate in 2d space (higher dimension noise-functions also exist, but are irrelevant for the purpose of this article) and returns a value in the range -1..=1 such as points close together retu
What I've learned about flow fields so far. June 15, 2021, updated December 27, 2023. If you feel that this article is too wordy skip all the text and play with the illustrations, they get more and more fun as the articles rambles on! -- Me Table of contents Brief introduction Noise functions Drawing lines Alternatives to noise functions Collision detection Optimizing collision detection colors Conclusion Brief introduction. This article will describe the methods and concepts I used to create the series of generated artworks pictured below. I've tried to visualize the algorithms and provide so
Explore this link on the map →saved by
related reading
- Flow Fields | Tyler Hobbstylerxhobbs.com
- The Book of Shaders: Fractal Brownian Motionthebookofshaders.com
- Poline — Esoteric Color Palette Generation Librarymeodai.github.io
- Visualizing Algorithmsbost.ocks.org
- Perlin Noise: A Procedural Generation Algorithmrtouti.github.io
- Paper Shaders – Ultra-fast zero-dependency shadersshaders.paper.design
- Drawing from noise, and then making animated loopy GIFs from there. – necessary-disorder tutorialsnecessarydisorder.wordpress.com
- Perlin noise - Wikipediaen.wikipedia.org
- Shadersshaders.com
- GitHub - LingDong-/fishdraw: procedurally generated fish drawings · GitHubgithub.com
- The Engineering behind Figma’s Vector Networksalexharri.com
- GitHub - josephmiclaus/p5.grain: Conveniently add film grain, seamless texture overlays, and manipulate pixels to achieve nostalgic and artistic effects in p5.js sketches and artworks. · GitHubgithub.com