GithubHelp home page GithubHelp logo

jasonwebb / morphogenesis-resources Goto Github PK

View Code? Open in Web Editor NEW
2.0K 105.0 114.0 44.36 MB

Resources on the topic of digital morphogenesis (creating form with code). Includes links to major articles, code repos, creative projects, books, software, and more.

morphogenesis research simulation growth-algorithms pattern-formation computational-geometry procedural-generation

morphogenesis-resources's People

Contributors

arnoudbuzing avatar cliffckerr avatar gargaj avatar golanlevin avatar jasonwebb avatar marciopuga avatar mgrider avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

morphogenesis-resources's Issues

Tiling

Add to Math and physics topics

  • https://en.wikipedia.org/wiki/Tessellation
  • Periodic tiling = repeating pattern
    • Regular tiling = uses 1 polygon of the same shape
    • Semi-regular tiling = uses a mix of different polygon shapes
    • All patterns in periodic tiling can be classified into 17 wallpaper groups
  • Aperiodic tiling = non-repeating pattern

Vectors

I mean, how the hell did I miss this one?

Fix broken images

Originally all images were embedded from external URLs to keep the repo size small and preserve a kind of indirect attribution, but now that the repo has matured a bit I don't think the images would take up much space.

Probably makes sense to put copies of all the images in a subfolder like assets/ or images/.

Related note - how can attribution be better integrated?

Book Recommendation: The Algorithmic Beauty of Sea Shells

Just dropping a recommendation for the books list:
The Algorithmic Beauty of Sea Shells by Hans Meinhardt
Amazon link to book

I remember it being referenced in one of Philip Ball's books. It's part of a series called 'The Virtual Laboratory' by publish Springer which cover a few other patterns (which I have yet to read/recommend):
The Virtual Laboratory series on Springer

Thanks for putting these lists together, I have been making my own but this is far more complete.

Add Scrawl-canvas Javascript library to the 'Languages and frameworks' section at the bottom of the page

Hi Jason,

Grateful if you would consider adding my Javascript canvas library - Scrawl-canvas[1] - as a link in the 'Languages and frameworks' section at the bottom of the page.

[1] link: https://scrawl-v8.rikweb.org.uk/

Why?
Scrawl-canvas is a fast and efficient library for creating 2D animations, infographics and other graphical representations for websites.

Yes, but why add it to this resources page?
Scrawl-canvas comes with some morphogenesis resources already built-in - mainly because they are really useful for making patterns, backgrounds and other visual effects as a part of an infographic or animation. For example:

Scrawl-canvas also makes an effort to play nicely with third party libraries - for instance the Delaunator JavaScript library for Delaunay triangulation of 2D points - example at https://scrawl-v8.rikweb.org.uk/demo/delaunator-001.html

Add notes about Lenia CA

Add some sort of reference about Lenia, a 2D CA with continuous space, time, and states from Bert Chan. This may be a large + interesting enough system to warrant a dedicated section that references the CA section.

Figure out what it has in common with and differs from SmoothLife.

Important links:

Curl noise

Similar to #43, this is significant enough of a topic to deserve a more detailed section. There aren't as many resources available, but it's so beautiful that I think it is worth the extra info.

Procedural generation (procgen)

Add to the Useful code patterns and techniques section

I've been thinking of the term "procedural generation" as a synonym for "digital morphogenesis", but that might not be clear to other people. A short section on the topic and how it relates to digital morphogenesis could be good for general audiences.

Seems like the term "procedural generation" is used more in the game dev world, and can refer to more than just generating 2D/3D assets -- people use it to make music, generate stories/dialogue, and more. So maybe this section is more of an overview of the differences between procgen and digital morphogenesis?

Neural cellular automata (NCA)

Add content to the Cellular automata (CA) section

I've been seeing more projects exploring neural networks to create rules for CA, so I think they are worth documenting now. Personally I'd like to focus on how NCA can be used in mindful and systematic ways to deepen our understanding of the phenomena they are modelling. As opposed to using it as a shortcut to achieve complex results that look cool but the creator doesn't actually understand.

I'm especially interested in how NCA can be used to produce new forms and patterns, not just trained to reproduce existing ones.

Soft body physics

Add to the Useful code patterns and techniques section.

Methods for simulating the motion and behaviors of deformable ("soft") bodies.

Common technique is to use a spring-mass system - a network of points connected with edges that act as springs. Adjusting the mass of the points or the physical properties of the spring produces different effects, as does changing which points are connected to others.

Kernel / convolution matrix

New topic to add to the Useful code patterns and techniques section

In the context of image processing, a kernel is a convolution matrix applied to individual pixels to create effects like blurring, sharpening, edge detection, embossing, and more.

Convolution matrices are a math topic related to this - maybe it deserves a section in Math and physics topics?

Perlin noise

Although there already is a section on Noise, I think Perlin noise is significant enough to be documented in more detail in a dedicated section.

  • https://en.wikipedia.org/wiki/Perlin_noise
  • Ken Perlin created it in 1983 after working on the original Tron. He received an Academy Award for Technical Achievement for it in 1997.
  • Used heavily for image textures and terrain generation
  • Algorithm overview:
    1. Grid definition = define an n dimensional grid with random gradient unit vectors at each grid intersection.
    2. Dot product = for each grid cell, calculate an offset vector and a dot product for each of it's 2^n corners.
      • Offset vector = displacement (distance?) from this corner to the candidate point
      • Dot product = the dot product of the corner's gradient vector and its gradient vector
    3. Interpolation = calculate a noise value for the candidate point by lerping it between the offset vector and dot product. This is what gives Perlin noise its characteristic organic look, since there is smooth continuity across grid cells. image
  • Simplex noise = created and patented by Ken Perlin in 2011 to be an improvement with fewer artifacts and less computational time. Any legal limitations for commercial use?
    • OpenSimplex was independently created in order to get around the legal issues of simplex noise

Polyhedra

Under the Math and physics topics section

  • https://en.wikipedia.org/wiki/Polyhedron
  • Super complex from a pure mathematics perspective, so let's boil this down to the most essential, common, and general info. Focus on a more practical perspective -- how to make them, how to use them to make other stuff, how people have have/are using them
  • Important classes of convex polyhedra
    • Platonic solids (link to section)
    • Archimedean solids (link to section)
    • Johnson solids (new section?)
  • Overview of symmetries - just their name and short definition, with links if necessary
  • Stellations and facettings - inverses of each other
  • Overview of regular polyhedra in nature - radiolarians, crystals, fullerene,

Geodesics

Add this topic to the Math and physics topics section.

Pretty much the equivalent of a straight line for curved surfaces - the shortest path between two points. Used for flight planning (and orbital mechanics?), but maybe there

Relates to #8 (Geodesic domes)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.