[HN Gopher] Making Sandspiel
       ___________________________________________________________________
        
       Making Sandspiel
        
       Author : luu
       Score  : 47 points
       Date   : 2023-01-28 07:27 UTC (15 hours ago)
        
 (HTM) web link (maxbittker.com)
 (TXT) w3m dump (maxbittker.com)
        
       | DonHopkins wrote:
       | Max mentioned: "recent work on mass-preserving Lenia variations
       | have given me some ideas..."
       | 
       | https://twitter.com/zzznah/status/1606294595330940928
       | 
       | Alex Mordvintsev @zzznah: Pleased to share our new work:
       | "Particle Lenia and the energy-based formulation" by @eyvindn
       | @RandazzoEttore and me! (thread  )
       | 
       | https://google-research.github.io/self-organising-systems/pa...
       | 
       | https://arxiv.org/abs/2212.07906
       | 
       | Flow Lenia: Mass conservation for the study of virtual creatures
       | in continuous cellular automata
       | 
       | Erwan Plantec, Gautier Hamon, Mayalen Etcheverry, Pierre-Yves
       | Oudeyer, Clement Moulin-Frier, Bert Wang-Chak Chan Lenia is a
       | family of cellular automata (CA) generalizing Conway's Game of
       | Life to continuous space, time and states. Lenia has attracted a
       | lot of attention because of the wide diversity of self-organizing
       | patterns it can generate. Among those, some spatially localized
       | patterns (SLPs) resemble life-like artificial creatures. However,
       | those creatures are found in only a small subspace of the Lenia
       | parameter space and are not trivial to discover, necessitating
       | advanced search algorithms. We hypothesize that adding a mass
       | conservation constraint could facilitate the emergence of SLPs.
       | We propose here an extension of the Lenia model, called Flow
       | Lenia, which enables mass conservation. We show a few
       | observations demonstrating its effectiveness in generating SLPs
       | with complex behaviors. Furthermore, we show how Flow Lenia
       | enables the integration of the parameters of the CA update rules
       | within the CA dynamics, making them dynamic and localized. This
       | allows for multi-species simulations, with locally coherent
       | update rules that define properties of the emerging creatures,
       | and that can be mixed with neighbouring rules. We argue that this
       | paves the way for the intrinsic evolution of self-organized
       | artificial life forms within continuous CAs.
        
       | owlglass wrote:
       | I found Sandspiel and its creator's blog a while back, and it was
       | really humbling and inspiring. Max is clearly very talented and
       | dedicated, and his projects served as a reminder to me, as a
       | jaded person tired of seeking the profitability or usefulness of
       | software projects, that at the end of the day, programming (and,
       | by extension, one's use of their time) can just be about fun and
       | creative exploration.
        
       | DonHopkins wrote:
       | I am a huge fan of Sandspiel, which Max described in this article
       | from 2019, and recently I was delighted to discover that he and
       | TodePond have been doing a huge amount of wonderful work since
       | then.
       | 
       | What happens when you combine Sandspiel with a Scratch-like
       | blocks based visual programming language that lets you look
       | inside and see how rules work, tweak and modify them, and even
       | define your own rules for different types of particles? And then
       | form a community around it for sharing and learning from each
       | other and building on top of each other's work.
       | 
       | Here is Max's and TodePond's brilliantly ambitious visually
       | programmable sequel, Sandspiel Studio!
       | 
       | https://studio.sandspiel.club/
       | 
       | Here's my profile, where you can play with the version of Max's
       | flower growing rule that he shows here:
       | 
       | https://www.youtube.com/watch?v=ifyYITDq1oo
       | 
       | ...to grow underground potatoes and fancy flowers:
       | 
       | https://studio.sandspiel.club/user/clanzgor8006109mtjooi348t
       | 
       | I've written more about Sandspeil Studio and related topics of
       | artificial life, cellular automata, and visual programming, and
       | quoted some interesting discussion with Max and TodePond from
       | their Discord server (they actually already knew about most of
       | this stuff, but they love it as much as I do), in the "Ask HN:
       | What weird technical scene are you fond/part of?" discussion, in
       | reply to api's comment about Digital Artificial Life:
       | 
       | https://news.ycombinator.com/item?id=33698163
       | 
       | api 67 days ago | parent | context | favorite | on: Ask HN: What
       | weird technical scene are you fond/pa...
       | 
       | Digital Artificial Life -- as in evolving program ecosystems,
       | artificial chemistries or cellular automata that can manifest
       | life-like phenomena, etc.
       | 
       | Haven't done much with it in a while but was very into it in
       | college. It's both a minor scientific field (would probably be
       | grouped under both theoretical biology and AI research) and a
       | hobbyist field with some really interesting projects.
       | 
       | DonHopkins 67 days ago | prev [-]
       | 
       | That's one of my long time interests and hobbies, which I write
       | about on HN and discuss with other people frequently. I'm
       | supposed to be doing something else right now so I'll quickly
       | drop a few disorganized quotes and links here. (Sorry I didn't
       | have time to be more concise!)
       | 
       | A few years ago I ran across Max Bittker's beautiful "Sandspiel",
       | which is a delightful cellular automata toy that simulates sand
       | and other rules:
       | 
       | https://sandspiel.club/
       | 
       | A few days ago I saw him tweet some amazing stuff that resonated
       | with me, which then led me to discover what he's been working
       | with Lu Wilson (TodePond): Sandspiel Studio -- user definable
       | rules using a block based visual programming language.
       | 
       | https://twitter.com/maxbittker
       | 
       | "working on goth fungus kidpix":
       | 
       | https://twitter.com/maxbittker/status/1593868837111451649
       | 
       | Lu Wilson (TodePond):
       | 
       | https://twitter.com/TodePond
       | 
       | Sandspiel Studio:
       | 
       | https://studio.sandspiel.club/
       | 
       | Sandspiel introduction:
       | 
       | https://www.youtube.com/watch?v=ecCVor7mJ6o
       | 
       | Sandspiel Studio in 60 seconds:
       | 
       | https://www.youtube.com/watch?v=qOA-lR3Xc34
       | 
       | Rainbow Sand:
       | 
       | https://www.youtube.com/watch?v=PGTsy79wx4U
       | 
       | Huegene:
       | 
       | https://www.youtube.com/watch?v=ltpkO7jcFOY
       | 
       | Flower:
       | 
       | https://www.youtube.com/watch?v=ifyYITDq1oo
       | 
       | TodePond's Spellular Automata:
       | 
       | https://www.youtube.com/watch?v=xvlsJ3FqNYU
       | 
       | We had a great discussion on the Sandspiel Studio Discord server,
       | where I posted some interesting links:
       | 
       | Check out the Long Now Foundation talk by Brian Eno and Will
       | Wright about Generative Systems:
       | 
       | 10:39 minute excerpt of Will talking about cellular automata and
       | demonstrating with Mirak's Cellebration:
       | https://www.youtube.com/watch?v=UqzVSvqXJYg
       | 
       | 6:48 minute excerpt of Will demonstrating Spore Metaverses:
       | https://www.youtube.com/watch?v=7t0kuvz5x_4
       | 
       | 6:29 minute excerpt of Will demonstrating Spore Creature Demo:
       | https://www.youtube.com/watch?v=8PXiNNXUUF8
       | 
       | Entire 1:38:50 hour Long Now Foundation talk: Playing with Time |
       | Brian Eno and Will Wright https://www.youtube.com/watch?v=Dfc-
       | DQorohc
       | 
       | Craig Reynolds said the name "Boids" was inspired by The
       | Producers Concierge scene, so that's how you should pronounce it:
       | 
       | Boids. Dirty, disgusting, filthy, lice ridden Boids. Boids. You
       | get my drift?
       | 
       | https://www.youtube.com/watch?v=aL6mTMShVyk
       | 
       | The other really cool rabbit hole to explore for generating tiles
       | and even arbitrary graph based content (I'm sold: hexagons are
       | the bestagons!) is "Wave Function Collapse", which doesn't
       | actually have anything to do with quantum mechanics (it just
       | sounds cool), but is actually a kind of constraint solver related
       | to sudoku solvers.
       | 
       | https://escholarship.org/content/qt3rm1w0mn/qt3rm1w0mn_noSpl...
       | 
       | Maxim Gumin's work: https://github.com/mxgmn/WaveFunctionCollapse
       | 
       | Paul Merrell's work:
       | 
       | https://paulmerrell.org/model-synthesis/
       | 
       | https://paulmerrell.org/research/
       | 
       | Oskar Stalberg's work:
       | 
       | https://twitter.com/OskSta/status/784847588893814785
       | 
       | https://oskarstalberg.com/game/wave/wave.html
       | 
       | There's a way to define cellular automata rules by giving
       | examples of the before and after patterns, and WFC is kind of
       | like a statistical constraint solving version of that.
       | 
       | So it's really easy for artists to define rules just by drawing!
       | Not even requiring any visual programming, but you can layer
       | visual programming on top of it.
       | 
       | That's something that Alexander Repenning's "AgentSheets"
       | supported (among other stuff): you could define cellular automata
       | rules by before-and-after examples, wildcards and variables, and
       | attach additional conditions and actions with a visual
       | programming language.
       | 
       | AgentSheets and other cool systems are described in this classic
       | paper: "A Taxonomy of Simulation Software: A work in progress"
       | from Learning Technology Review by Kurt Schmucker at Apple. It
       | covered many of my favorite systems.
       | 
       | http://donhopkins.com/home/documents/taxonomy.pdf
       | 
       | Chaim Gingold wrote a comprehensive "Gadget Background Survey" at
       | HARC, which includes AgentSheets, Alan Kay's favorites: Rockey's
       | Boots and Robot Odyssey, and Chaim's amazing SimCity Reverse
       | Diagrams and lots of great stuff I'd never seen before:
       | 
       | http://chaim.io/download/Gingold%20(2017)%20Gadget%20(1)%20S...
       | 
       | Chaim Gingold has analyzed the SimCity (classic) code and
       | visually documented how it works, in his beautiful "SimCity
       | Reverse Diagrams":
       | 
       | >SimCity reverse diagrams: Chaim Gingold (2016).
       | 
       | >These reverse diagrams map and translate the rules of a complex
       | simulation program into a form that is more easily digested,
       | embedded, disseminated, and and discussed (Latour 1986).
       | 
       | >The technique is inspired by the game designer Stone Librande's
       | one page game design documents (Librande 2010). If we merge the
       | reverse diagram with an interactive approach--e.g. Bret Victor's
       | Nile Visualization (Victor 2013), such diagrams could be used
       | generatively, to describe programs, and interactively, to allow
       | rich introspection and manipulation of software.
       | 
       | >Latour, Bruno (1986). "Visualization and cognition". In:
       | Knowledge and Society 6 (1986), pp. 1- 40. Librande, Stone
       | (2010). "One-Page Designs". Game Developers Conference. 2010.
       | Victor, Bret (2013). "Media for Thinking the Unthinkable". MIT
       | Media Lab, Apr. 4, 2013.
       | 
       | https://lively-web.org/users/Dan/uploads/SimCityReverseDiagr...
       | 
       | Agentsheets: Alexander Repenning (1993-)
       | 
       | Interacting agents are embedded and interact within cellular
       | spaces called sheets. Agents are reactive to direct manipulation
       | and have autonomous behavior. Agent Sheets draws upon a similarly
       | spirited broad field of paradigms: artificial life, visual
       | programming, "programmable drawing tools," "simulation
       | environments", games, cellular automata, and "spreadsheet
       | extensions." Repenning draws upon these shared characteristics:
       | visual, spatial notation, dynamic, direct manipulation, and
       | incremental agency. The basic tool palette is also a gallery,
       | defined in simulation terms.
       | 
       | Highlights:
       | 
       | * Kits ("agencies") describe specific domains. One effect of
       | "|ayered" design is "roles"--end-users vs. scenario designers.
       | Example domains in thesis: Turing machines, circuits, flow,
       | traffic, programs. * Sheet is a cellular 2d space, but agents can
       | be stacked up in a cell. * Incremental refinement of art,
       | behavior, etc... * A highly generalize idea of flow is used for
       | things like neural nets, flow charts, water flow, circuits,
       | system dynamic style models, and traffic. * It also supports
       | ecological style spatial simulations. * User interaction and
       | agent communication is in the same representation. i.e. Anything
       | can do to one another everything the user can.
       | 
       | AgentSheets is still going, and has even gone all 3D like
       | Minecraft! AgentCubes!
       | 
       | https://agentsheets.com/
       | 
       | Another great visual programming language for kids that supported
       | defining cellular automata rules by example and visual
       | programming:
       | 
       | KidSim (later Cocoa, then Stagecast Creator) Smith, David C.,
       | Allen Cypher, and James Spohrer (1994) In KidSim graphical
       | simulations are created via graphical rewrite rules, which also
       | enables a kind of programming by demonstration. The creators
       | argue that most people can use editor GUIs (e.g. paint programs),
       | and can give directions, but cannot program. Their solution is to
       | "get rid of the programming language" in favor of a philosophy
       | grounded in GUI design:
       | 
       | * Visibility. Relevant information is visible; causality is
       | clear; modelessness. * Copy and modify, not make from scratch. *
       | See and point, not remember and type. * Concrete, not abstract. *
       | Familiar conceptual model. ("minimum translation distance").
       | 
       | They choose a symbolic simulation microworld as a domain because
       | it leads to knowing, ownership, and motivation. All objects are
       | agents which have appearances, properties (name value pairs), and
       | rules.
       | 
       | Programming by demonstration extends to using a calculator and
       | dragging properties around to define conditionals. One of the
       | creators of KidSim, David Smith, was also the creator of another
       | graphical programming environment: Pygmalion.
       | 
       | Smith, David C., Allen Cypher, and James Spohrer (1994)
       | 
       | (Then I ran across TodePond's Spellular Automata video and
       | realized I was preaching to the choir! TodePond wrote: "and
       | stagecast creator is a big inspiration to me! I name-dropped it
       | in a demo I did this week :D")
       | 
       | Wow I did not realize I was evangelizing to the choir! This video
       | by TodePond, is exactly what I was talking about, just much more
       | beautiful than I'd imagined possible:
       | 
       | https://www.youtube.com/watch?v=xvlsJ3FqNYU
       | 
       | I was watching Lex Fredman interview Michael Levin, and Lex
       | expressed the same level of fascination about cellular automata
       | that I have:
       | 
       | Michael Levin: Michael Levin: Biology, Life, Aliens, Evolution,
       | Embryogenesis & Xenobots | Lex Fridman Podcast #325
       | 
       | https://www.youtube.com/watch?v=p3lsYlod5OU
       | 
       | 1:44:29: Lex: Whenever I think about something like
       | unconventional cognition, I think about cellular automata. I'm
       | just captivated by the beauty of the thing. The fact that from
       | simple little objects you can create such beautiful complexity
       | that very quickly you forget about the individual objects and you
       | see the things that it creates as its own organisms. That blows
       | my mind every time. Like honestly I could full time just eat
       | mushrooms and watch cellular automata. I don't even have to do
       | mushrooms. Cellular automata, it feels like from the engineering
       | perspective, I love when a very simple system captures something
       | really powerful. Because then you can study that system to
       | understand something fundamental about complexity, about life on
       | earth. Anyway how Do I communicate with the thing? If a cellular
       | automata can do cognition, if a plant can do cognition, if a
       | xenobot can do cognition, how do I whisper in its ear and get an
       | answer back, too? How do I have a conversation? How do I have a
       | xenobot on the podcast?
       | 
       | Then I watched Lex interview Steven Wolfram:
       | 
       | https://www.youtube.com/watch?v=ez773teNFYA
       | 
       | Stephen Wolfram: Cellular Automata, Computation, and Physics |
       | Lex Fridman Podcast #89 - YouTube
       | 
       | https://www.youtube.com
       | 
       | I hate it when a program I wrote mocks me. In Lex Fridman's
       | interview of Steven Wolfram, he demonstrates the machine learning
       | functions in Mathematica by taking a photo of himself, which
       | identifies him as a .... (I won't give it away):
       | 
       | https://www.youtube.com/watch?v=ez773teNFYA&t=2h20m05s
       | 
       | Here's a video I recently recorded of the CAM-6 simulator I
       | implemented decades ago, and rewrote in JavaScript a few years
       | ago.
       | 
       | https://www.youtube.com/watch?v=LyLMHxRNuck
       | 
       | I recorded that demo to show to Norman Margolus, who co-wrote the
       | book and wrote the CAM6 PC Forth code and many rules, so it's
       | pretty long and technical and starts out showing lots of code,
       | but I'm sure you'll totally get and appreciate it. I linked to a
       | pdf copy of the book in the comments, as well as the source code
       | and playable app.
       | 
       | Demo of Don Hopkins' CAM6 Cellular Automata Machine simulator.
       | 
       | Live App: https://donhopkins.com/home/CAM6
       | 
       | Github Repo: https://github.com/SimHacker/CAM6/
       | 
       | Javacript Source Code:
       | https://github.com/SimHacker/CAM6/blob/master/javascript/CAM...
       | 
       | PDF of CAM6 Book: https://donhopkins.com/home/cam-book.pdf
       | 
       | Comments from the code:                   // This code originally
       | started life as a CAM6 simulator written in C         // and
       | Forth, based on the original CAM6 hardware and compatible with
       | // the brilliant Forth software developed by Toffoli and
       | Margolus. But         // then it took on a life of its own (not
       | to mention a lot of other CA         // rules), and evolved into
       | supporting many other cellular automata         // rules and
       | image processing effects. Eventually it was translated to
       | // C++ and Python, and then more recently it has finally been
       | // rewritten from the ground up in JavaScript.         // The
       | CAM6 hardware and Forth software for defining rules and
       | // orchestrating simulations is thoroughly described in this
       | wonderful         // book by Tommaso Toffoli and Norman Margolus
       | of MIT.         // Cellular Automata Machines: A New Environment
       | for Modeling         // Published April 1987 by MIT Press. ISBN:
       | 9780262200608.         // http://mitpress.mit.edu/9780262526319/
       | 
       | Here's another demo I recorded a while ago that shows more rules:
       | 
       | https://www.loom.com/share/cc09b916134b43cea201b61e71432f32
       | 
       | Making a Falling Sand Simulator:
       | 
       | https://news.ycombinator.com/item?id=31309616
       | 
       | Oh My Gosh, It's Covered in Rule 30s:
       | 
       | https://news.ycombinator.com/item?id=14458955
       | 
       | Wolfram Rule 30 Prizes:
       | 
       | https://news.ycombinator.com/item?id=21130098
       | 
       | Finding Mona Lisa in the Game of Life:
       | 
       | https://news.ycombinator.com/item?id=22552006
       | 
       | Andrew Wuensche's and Mike Lesser's gorgeous coffee table book,
       | "The Global Dynamics of Cellular Automata":
       | 
       | https://news.ycombinator.com/item?id=22570750
       | 
       | Here's some stuff about Dave Ackley's "Robust First Computing"
       | and "Moveable Feast Machine":
       | 
       | https://news.ycombinator.com/item?id=22304063
       | 
       | DonHopkins on Feb 11, 2020 | parent | context | favorite | on:
       | Growing Neural Cellular Automata: A Differentiable...
       | 
       | Also check out the "Moveable Feast Machine", Robust-first
       | Computing, and this Distributed City Generation example:
       | 
       | https://news.ycombinator.com/item?id=21858577
       | 
       | DonHopkins on Oct 26, 2017 | parent | favorite | on: Cryptography
       | with Cellular Automata (1985) [pdf]
       | 
       | A "Moveable Feast Machine" is a "Robust First" asynchronous
       | distributed fault tolerant cellular-automata-like computer
       | architecture. It's similar to a Cellular Automata, but it
       | different in several important ways, for the sake of "Robust
       | First Computing". These differences give some insight into what
       | CA really are, and what their limitations are.
       | 
       | Cellular Automata are synchronous and deterministic, and can only
       | modify the current cell: all cells are evaluated at once (so the
       | evaluation order doesn't matter), so it's necessary to double
       | buffer the "before" and "after" cells, and the rule can only
       | change the value of the current (center) cell. Moveable Feast
       | Machines are like asynchronous non-deterministic cellular
       | automata with large windows that can modify adjacent cells.
       | 
       | Here's a great example with an amazing demo and explanation, and
       | some stuff I posted about it earlier:
       | 
       | https://news.ycombinator.com/item?id=14236973
       | 
       | Robust-first Computing: Distributed City Generation:
       | 
       | https://www.youtube.com/watch?v=XkSXERxucPc
       | 
       | https://news.ycombinator.com/item?id=22304110
       | 
       | DonHopkins on Feb 11, 2020 | parent | context | favorite | on:
       | Growing Neural Cellular Automata: A Differentiable...
       | 
       | Dave Ackley, who developed the Moveable Feast Machine, had some
       | interesting thoughts about moving from 2D to 3D grids of cells:
       | 
       | https://news.ycombinator.com/item?id=21131468
       | 
       | DonHopkins 4 months ago | parent | favorite | on: Wolfram Rule 30
       | Prizes
       | 
       | Very beautiful and artistically rendered! Those would make great
       | fireworks and weapons in Minecraft! From a different engineering
       | perspective, Dave Ackley had some interesting things to say about
       | the difficulties of going from 2D to 3D, which I quoted in an
       | earlier discussion about visual programming:
       | 
       | https://news.ycombinator.com/item?id=18497585
       | 
       | David Ackley, who developed the two-dimensional CA-like "Moveable
       | Feast Machine" architecture for "Robust First Computing", touched
       | on moving from 2D to 3D in his retirement talk:
       | 
       | https://youtu.be/YtzKgTxtVH8?t=3780
       | 
       | "Well 3D is the number one question. And my answer is, depending
       | on what mood I'm in, we need to crawl before we fly."
       | 
       | "Or I say, I need to actually preserve one dimension to build the
       | thing and fix it. Imagine if you had a three-dimensional
       | computer, how you can actually fix something in the middle of it?
       | It's going to be a bit of a challenge."
       | 
       | "So fundamentally, I'm just keeping the third dimension in my
       | back pocket, to do other engineering. I think it would be
       | relatively easy to imaging taking a 2D model like this, and
       | having a finite number of layers of it, sort of a 2.1D model,
       | where there would be a little local communication up and down,
       | and then it was indefinitely scalable in two dimensions."
       | 
       | "And I think that might in fact be quite powerful. Beyond that
       | you think about things like what about wrap-around torus
       | connectivity rooowaaah, non-euclidian dwooraaah, aaah uuh, they
       | say you can do that if you want, but you have to respect
       | indefinite scalability. Our world is 3D, and you can make little
       | tricks to make toruses embedded in a thing, but it has other
       | consequences."
       | 
       | Here's more stuff about the Moveable Feast Machine:
       | 
       | https://news.ycombinator.com/item?id=15560845
       | 
       | https://news.ycombinator.com/item?id=14236973
       | 
       | The most amazing mind blowing demo is Robust-first Computing:
       | Distributed City Generation:
       | 
       | https://www.youtube.com/watch?v=XkSXERxucPc
       | 
       | And a paper about how that works:
       | 
       | https://www.cs.unm.edu/~ackley/papers/paper_tsmall1_11_24.pd...
       | 
       | Plus there's a lot more here:
       | 
       | https://movablefeastmachine.org/
       | 
       | Now he's working on a hardware implementation of indefinitely
       | scalable robust first computing:
       | 
       | https://www.youtube.com/channel/UC1M91QuLZfCzHjBMEKvIc-A
       | 
       | John von Neumann's 29 State Cellular Automata
       | 
       | https://news.ycombinator.com/item?id=22304084
       | 
       | John von Neumann's book "Theory of Self-Reproducing Automata":
       | 
       | https://news.ycombinator.com/item?id=21858465
       | 
       | Factorio, and Will Wright on simulation games:
       | 
       | https://news.ycombinator.com/item?id=24163024
        
       | ccheever wrote:
       | Max is also working on https://castle.xyz/ now, another creation
       | tool with some similar properties.
        
       | weast wrote:
       | If you've ever wondered what a fully fledged sandspiel Roguelike
       | (technically more a roguelite for those of you who mind) hahe a
       | look at a game called Noita on Steam. It is a masterpiece of
       | weaving an incredibly rich game out of the sandspiel apps of
       | yore. I was suprised by how much I enjoyed it, evej if it is a
       | little punishing.
        
       ___________________________________________________________________
       (page generated 2023-01-28 23:00 UTC)