dishtiny

distributed hierarchical transitions of individuality

Neighbor Sharing Fraction
Interconnect Sharing Fraction
Channel
Resource Stockpile
Resource Sharing
Resource Flow
Messaging Flow
Reproduction
Apoptosis
Taxa
Resource Wave Level 0
Resource Wave Level 1
Channel Generation Level 0
Channel Generation Level 1
Expiration Level 0
Expiration Level 1
Reproductive Pause Level 0
Reproductive Pause Level 1
Reproductive Pause Level 2
Established Interconnect
Fledgling Interconnect
Neighbor Shared Resource
Interconnect Shared Resource
Neighbor Messaging
Interconnect Messaging
Phylogenetic Root
Regulation
Regulation Flow
Directional Regulation
Interconnect Regulation
th update
  • The Channel Viewer shows the arrangement of hereditarily-defined resource-collecing cell groups.

  • Color saturation (e.g., light green vs. intense green ) differentiates low-level groups.

  • Color hue (e.g., light blue / intense blue vs. light purple / intense purple ) differentiates high-level groups, which are groups of low-level groups.

  • White borders divide low-level groups that are part of the same high-level group.

  • Black borders divide high-level groups.

  • Group Structure
  • Channel
    Established Interconnect
    Fledgling Interconnect
  • Demographics
  • Taxa
    Channel Generation Level 0
    1
    Expiration Level 0
    1
    Phylogenetic Root
  • Resource Collection
  • Resource Stockpile
    Resource Wave Level 0
    1
  • Cell Behavior
  • Resource Sharing
  • Neighbor Sharing Fraction
    Interconnect Sharing Fraction
    Resource Sharing
    Resource Flow
    Neighbor Shared Resource
    Interconnect Shared Resource
  • Messaging
  • Messaging Flow
    Neighbor Messaging
    Interconnect Messaging
  • Reproduction and Apoptosis
  • Reproduction
    Reproductive Pause Level 0
    1
    2
    Apoptosis
  • Regulation
  • Regulation
    Regulation Flow
    Directional Regulation
    Interconnect Regulation
How many unique genotypes are there in the population?
How many steps long is the line of descent to extant cells?
How many unique root ancestors have extant offspring?
How updates have elapsed since the most recent common ancestor of all extant organisms?
How many cellular generations have elapsed?
How many channel generations have elapsed?
How many channel generations have elapsed?
    
COUNT:1012 POINTER Fn-0 10010011111101101111011010000100: Nop DuplicateTerminal8 1 Fn-1 01000110110101101100010111010110: Nop DuplicateInput 2 1 Fn-2 00100100001101101001101011110011: Nop SetGiveSharingFalse 0 2 3 Fn-3 11110000011110010010101100010101: Nop Terminal0.125 8 QueryChannelMate-Lev0 1 1 Fn-4 00000000011000011000010110011111: Nop QueryChannel-Lev0 1 6 QueryChannelMate-Lev1 5 1 Fn-5 00011110100010101100001110011000: Nop While 3 Fn-6 11000001111100110101111110001101: Nop Fork 10000101001010010000100000101111 Fn-7 01100000000101001000010110001010: Nop Inc 8 SendMsgExternal 00101100000001011100000110100100 7 Div 1 0 1 Nop QueryIsExpired1 6 6 Not 7 TryReproduce-Lev0 6 DuplicateSetMem 1 8 DuplicateWhile 6 DuplicateTerminal8 8 SetReproductionReserve 7 2 CopyMem 5 2 Return Dec 3 Close QueryIsExpired1 7 3 SetAcceptSharingFalse 5 1 6 BcstSpikeReverseMsg 01110001101101011011100110001101 Dec 6 CopyMem 4 6 SwapMem 8 1 QueryIsCellParent 3 0 TryReproduce-Lev1 2 PutInternalMembraneBlocker 00010000000000011100001100011010 3 0 Dec 4 QueryIsOlderThan 8 3 QueryIsPoorerThan 5 5 Div 1 2 7 Mult 0 3 4 TryAddFledglingConnection 3 7 DuplicateTestEqu 3 7 0 TestLess 3 1 8 Fn-8 01110000000110101100100110101011: Nop DuplicateTerminal1 8 Fn-9 10000100100011100100010010110011: Nop PauseRepr-Lev2 1 PauseRepr-Lev2 3 Terminal1073741824 7 SendBigFracResource 7 0 Fn-10 01010010111101101110010111101000: Nop DuplicateTerminal8 0 DuplicateInput 2 1 Fn-11 10111010000000000001100011100100: Nop QueryChannelMate-Lev1 0 7 Fn-12 01011100101011101010111110001111: Nop PutInternalMembraneBringer 01011001000111000111011100100000 5 1 Fn-13 11001100101011101011100001111110: Nop SetReproductionReserve 5 5 Fn-14 01011011000010111010101001111001: Nop PutInternalMembraneBlocker 10101100111001011100110010010101 7 8 PutInternalMembraneBringer 10111100000101011110010101100001 0 1 Fn-15 11000010001100001111000000110110: Nop Inc 3 Fn-16 00011101011101110101000000101110: Nop SendMsgInternal 11110110111110011011100011110101 4 3 SendBigFracResource 3 0 Fn-17 11011100010010100101001010011000: Nop PutInternalMembraneBringer 01000001110000110101010100010101 3 1 Fn-18 01000000000100011000110110011011: Nop Fork 00010001101101011110101100010010 SendMsgExternal 00100100111111011000001011101110 7 Div 6 0 1 Mult 4 1 2 QueryIsExpired1 6 6 Not 7 Div 3 5 5 QueryIsPropaguleParent 6 4 DuplicateSetMem 1 4 QueryChannel-Lev1 6 1 DuplicateMult 3 4 8 QueryChannelMate-Lev1 8 0 SetReproductionReserve 7 2 CopyMem 5 4 Return Dec 3 Close QueryChannel-Lev1 5 3 SetAcceptSharingFalse 5 1 6 BcstSpikeReverseMsg 01110110100101010111000110101101 Dec 6 CopyMem 4 6 SwapMem 8 1 TestLess 3 0 0 PutInternalMembraneBlocker 00010000000100011110111000010010 3 2 Dec 4 QueryIsPoorerThan 5 5 DuplicateWhile 3 Mult 7 3 4 DuplicateTestEqu 3 1 5 DuplicateNop TestLess 3 1 8 Fn-19 01100000000100011000010110011010: Nop SendMsgExternal 00101100001111011100010111111100 7 Div 1 0 5 Nop Mult 4 1 2 QueryIsExpired1 6 6 Not 7 TryReproduce-Lev0 6 DuplicateSetMem 1 8 DuplicateWhile 6 SendMsgInternal 10000100110100111010001011110010 8 0 SetReproductionReserve 7 2 CopyMem 5 4 Return Dec 3 Close QueryIsExpired1 7 3 SetAcceptSharingFalse 5 1 6 BcstSpikeReverseMsg 01110010101100011111100110101101 Dec 6 CopyMem 4 6 SwapMem 8 1 QueryIsCellParent 3 0 TryReproduce-Lev1 2 DuplicateAdjRegulator 3 0 Dec 4 QueryIsPoorerThan 5 5 Div 1 2 7 Mult 0 3 4 TryAddFledglingConnection 3 7 DuplicateTestEqu 3 7 0 TestLess 3 1 8 Fn-20 00011100101011101010101100011111: Nop PutInternalMembraneBringer 01111001000110101111011100101000 5 1 Fn-21 10010000001010001000100110001111: Nop TestLess 2 2 8 QueryChannelMate-Lev1 5 6 QueryChannelMate-Lev1 5 5 Countdown 2 PutInternalMembraneBringer 01011001000101001110011100110000 5 1 Fn-22 00010100001000101100100000111001: Nop SetCellAgeBooster-Lev1 5 1 3 Fn-23 10010000110100011101111110001001: Nop DuplicateMult 6 0 7 Inc 1 Terminal1073741824 8 DuplicateTestEqu 5 6 8 DuplicateTerminal8 1 SetReproductionReserve 2 1 Fn-24 11011000101100100101100010111001: Nop DuplicateMod 5 5 3 Fn-25 00110000001010001000100110111001: Nop QueryChannel-Lev1 8 1 Fn-26 10010100000110100000110010110111: Nop DuplicateSetMem 4 5 SendBigFracResource 7 0 Fn-27 10101100101011101011100001011101: Nop PruneIncomingConnection 5 4 SetReproductionReserve 5 6 Fn-28 00010101001010000100100000111010: Nop PutExternalMembraneBringer 01100101011110011001011011111000 6 4 QueryIsPoorerThan 4 3 Fn-29 00101111001101101001101011010101: Nop SetGiveSharingFalse 0 5 0 Fn-30 00011100101011101110101110011111: Nop PutInternalMembraneBringer 01011001000111100111011100101000 5 1 Fn-31 11011000101100100100100000111011: Nop DuplicateMod 5 5 3 SPIKER Fn-0 01000111011101011101001111111011: Nop Terminal5 6 Fn-1 10010000010011100100101101100011: Nop DuplicateIf 7 Fn-2 11111100101001101010110111010111: Nop Terminal5 7 Fn-3 01010111111111111010111001011110: Nop DuplicateClose Nop Pull 7 4 Input 7 3 SenseRegulator 4 DuplicateCopyMem 5 1 SetAcceptSharingFalse 1 5 3 DuplicateSwapMem 7 7 TryAddFledglingConnection 5 6 Fn-4 01000111011101011101101111111101: Nop DuplicateRng 0 Terminal5 4 Fn-5 10010100010110101011100101010100: Nop DuplicateTerminal5 3 Fn-6 11111010101101110101111110111100: Nop DuplicateWhile 5 DuplicateWhile 5 Not 5 Fn-7 01110101110111010110100111001010: Nop DuplicateTerminal5 1 Fn-8 10010011011011110011001101100010: Nop BcstSpikeMsg 10100100111111011111010010111111 Fn-9 00011011110111100111111000101101: Nop Nop Fn-10 00001011101011010000101010010100: Nop SendSpikeReverseMsg 01010101000000111010100111100011 DuplicateDec 7 DuplicateSetMem 7 0 Fn-11 11000011001110010001111010110000: Nop Terminal5 7 Fn-12 01010111010110101101111010000011: Nop Dec 7 Fn-13 01000111011101011101111111111111: Nop Mult 0 7 8 Terminal5 7 Fn-14 01110011100100111110010101001100: Nop DuplicateDec 1 Fn-15 10101000111101011010001110000000: Nop SendBigFracResource 6 8 SendBigFracResource 3 4 BcstMsgInternal 10011111011011001110110011100010 SendBigFracResource 0 1 SendBigFracResource 6 8 BcstMsgInternal 10010110111010101110010011100001 SendBigFracResource 0 1 BcstMsgInternal 10011110011011001110110011100010 SendBigFracResource 0 1 SendBigFracResource 6 8 BcstMsgInternal 10010110111010101110010011100001 SendBigFracResource 6 1 PutInternalMembraneBringer 01001100001000110011011000100011 7 4 Close Fn-16 01000100000001100011111011101101: Nop Inc 5 DuplicateSub 4 1 2 Fn-17 11110111010101100111001110010100: Nop CopyMem 0 4 Terminal5 4 Fn-18 10110010010111000111101111010101: Nop Terminal5 4 Fn-19 01100101010001000000100111011011: Nop Terminate Fn-20 01110100001001111010100111100111: Nop Terminal5 7 Fn-21 01001111001111000011011101111110: Nop QueryIncomingConnections 4 Terminate Add 7 0 8 QueryIncomingConnections 4 Pull 5 6 Fn-22 11010000011101011000000111100111: Nop DuplicateWhile 4 Fn-23 01100001101111001110011011111010: Nop DuplicateFork 01011111101111010101111100001100 Fn-24 10100011111001111111011001111010: Nop Terminal5 4 Fn-25 01110101010010100001111011111111: Nop Terminal5 4 Fn-26 01010111110110101101111000001011: Nop TryAddFledglingConnection 7 6 Fn-27 11010100111111001111011101110011: Nop SetConnectionAgingParam 2 DuplicateFork 01011110100111000101101110001100 Fn-28 01101010010100011010010110001100: Nop DuplicateDec 1 Fn-29 10001011001101101010010001001000: Nop Dec 1 Fn-30 01000111011101011101001111111011: Nop DuplicateTerminal5 6
  • Hey! You can adjust any of these parameters right in your web browser using URL query parameters. For example, appending ?SEED=2&MUTATION_RATE=0.1 in your web browser's URL bar and refreshing will change the random number generator seed and mutation rate.
  • Do agents have function active sensors?
    What ratio of EVENT_RADIUS should the limit on cell age be?
    What fraction of REP_THRESH is recovered to heirs after apoptosis?
    Per-instruction/argument subsitution mutation rate.
    What amount of resource should be provided to cells at each update?
    Should channels have any effect in the instruction set and event triggers?
    How often to step the CPUs?
    Can environment signals trigger functions?
    How often to fire environmental trigger events?
    How many channel generations should resource collection be allowed after a cell's expires channel generation counter?
    How many copies of fledgling connections should be gemerated?
    Per-function rate of function deletion mutationss.
    Per-function rate of function duplication mutations.
    How often should we increase cell generation counters?
    How many tiles tall should the grid be?
    How many tiles wide should the grid be?
    How many hardware steps to run per update?
    Max call depth of a hardware unit.
    Max number of hardware cores; i.e., max number of simultaneous threads of execution hardware will support.
    Capacity of a cell's messaging inbox.
    Per-instruction deletion mutation rate.
    Per-instruction insertion mutation rate.
    Per-instruction/argument subsitution mutation rate.
    What is the minimum resource level required to stay alive?
    Should cell reproductions be targeted to neighbor cells?
    How many cell-cell connections should be allowed outgoing per cell?
    What percentage of offspring should experience mutations?
    Number of hierarchical resource levels.
    Maximum argument value for instructions.
    Maximum argument value for instructions.
    Used for mutating SGP programs. At most, how many functions can we have?
    Used for generating SGP programs. At most, how many functions do we generate?
    Used for mutating SGP programs. At most, for each function how many instructions can we have?
    Used for generating SGP programs. At most, for each function how many instructions do we generate?
    Minimum argument value for instructions.
    Minimum argument value for instructions.
    Used for mutating SGP programs. At least, how many functions can we have?
    Used for generating SGP programs. At least, how many functions do we generate?
    Used for mutating SGP programs. At least, for each function how many instructions can we have?
    Used for generating SGP programs. At least, for each function how many instructions do we generate?
    What percentage of propagule offspring should experience additional mutations?
    How more more resource than your target do you need to trample them?
    How much should replication cost?
    Should cells be able to use stockpiled resource to block incoming reproduction?
    How much resource should remain each update?
    Should the spiker cpu be stepped?
    Random number generator seed.
    Per-function rate of slip mutations.
    How much resource should a cell start with?
    How often should the stochastic event fire?
    How many subgrids should the grid have?
    Per-bit mutation rate of tag bit flips.
    How many replicates of the wave system should operate concurrently?
  • Parameters below are locked in at compile time, so you can't adjust them here... :(
  • 4b033c7-clean
    1874d2a-clean
    Selector: Ranked Selector (ThreshRatio: 1/2, DefaultN: 1) / Metric: Uniformified 32-bit Approx Dual Streak Metric / Regulator: Multiplicative Countdown Regulator
  • Comments, questions, concerns? I started a twitter thread so we can chat!
  • You can also reach me at m.more500@gmail.com.
  • Find the C++ and HTML source on GitHub. MIT licensed, contributions welcome!
  • Data from and tutorials for the native version of the software is hosted on the Open Science Framework.
  • The Empirical C++ Library for efficient, reliable, and accessible scientific software is the secret sauce behind the web visualization and digital evolution framework.
  • Emscripten compiled it to javascript so it can run in your web browser.
  • Bootstrap makes it look pretty and play nice with mobile devices.
  • Charles Ofria, Emily Dolson, Alex Lalejini, Jake Fenton, Matthew Andres Moreno, Steven Jorgensen, … Anya Vostinar. (2019, February 22). Empirical (Version v0.0.3). Zenodo. http://doi.org/10.5281/zenodo.2575607
  • Smith, John Maynard, and Eors Szathmary. The major transitions in evolution. Oxford University Press, 1997.
  • Lalejini, Alexander, and Charles Ofria. "Evolving event-driven programs with SignalGP." Proceedings of the Genetic and Evolutionary Computation Conference. ACM, 2018.
  • Moreno, Matthew Andres, and Charles Ofria. "Toward open-ended fraternal transitions in individuality." Artificial life 25.2 (2019): 117-133.