
ciphrd
@ciphrd • 13,803 subscribers
Generative artist interested in autonomous systems from which life-like behaviors emerge. @fx_hash_ founder
Videos

[wip] growing organisms using hypergraph rewriting I'm exploring generating organisms using string forces and I was wondering about which class of algorithms could be used to generalize the growth of such structures. I wanted a system which can produce a wide variety of outputs, while allowing for stable and controlled growth. That's when I thought about Stephen Wolfram (yes again) Physics Project, which proposes to explore a solution to the fundamental theory of physics using a hypergraph rewriting system ( TLDR; Growth of graphs using simple permutation rules. It's similar to cellular automata but for graphs. Could be what I'm looking for. I started to experiment with this system to grow my organisms, and it's definitely a promising approach! Below is a video of the following rules applied to an initial {{0,0},{0,0}} graph: rand() {{x,y},{x,w},{y,w},{z,w}} : {{x,y},{x,z}}->{{x,w},{y,w},{z,w}} There's a lot of areas to improve this exploration, notably: - localization of rules (instead of applying a same rule to the whole system, let each node have its own rules) - spawn control rules (when a new node is created, a rule can define which rules will be applied to such node) - mutation rules (rules which alter rules of adjacent nodes) - conditional rules (many rules can be attached to a node, the one being executed subject to localized conditions) Super exciting, will certainly be the basis of my next project.
ciphrd77,361 görüntüleme • 1 yıl önce

[wip] added behaviours - eaters: can process food — blue dots - food seekers: are attracted by food - actuators: contract muscles (for now it's a simple sinusoid, will be improved with signals) - anchors: attach to environment I also improved the growth mechanism, some DNA encodes functions which can affect the DNA/behaviours of the nodes. Each node has its own DNA strand. This is an example of a decoded DNA strand: permut({{{x,y},{x,z}}->{{x,y},{y,z},{z,w}}});assign(w,dna(4));cluster(w,0);cluster(y,rnd());behavior(y,+actuator);behavior(x,-eater) This strand makes it so that when the node is grown: - the permutation rule is applied - node assigned as 'w' received the DNA strand 4 - 'w' is assigned to cluster 0 - 'y' is assigned a random cluster - 'y' is assigned the actuator behavior - behavior eater is removed from 'x' This is pretty trivial, and I'm going to improve this system by designing a simple bytecode which encodes behaviors in a more generic way. This will allow more sophisticated behaviors as well as facilitate mutations. For now there's no concept of energy, but eventually some energy should be spent to activate, resulting in death if the organism cannot gather more.There's only 1 organism / sim, will be interesting to see some competition as well. Still, these early progress shows that interesting behaviors emerge from this kind of growth, with various systems more or less functional. Many more behaviors can be added (binders, propellers, grabers, etc...).
ciphrd47,162 görüntüleme • 1 yıl önce

[wip] added clusters of particles to the system Particles can be assigned to a group Groups have unique attraction/repulsion settings with other groups (Jeffrey Ventrella) For now groups are randomly assigned to organisms particles, next step will be to control these groups (as well as other behaviours) using the graph rewriting growth. I'm so excited by this development, one of my issues with the raw clusters system was the lack of stability of emerging structures—using spring forces seems to fix it.
ciphrd14,501 görüntüleme • 1 yıl önce
Daha fazla içerik yok.