[HN Gopher] Show HN: Lifeee - Conway's Game of Life with an infi...
___________________________________________________________________
Show HN: Lifeee - Conway's Game of Life with an infinite zoomable
grid
Author : scastiel
Score : 29 points
Date : 2021-11-12 19:25 UTC (3 hours ago)
(HTM) web link (lifeee.netlify.app)
(TXT) w3m dump (lifeee.netlify.app)
| d_silin wrote:
| Another Life implementation in Rust:
| https://github.com/brundonsmith/life
|
| And my own fork of it, with extra features:
| https://github.com/DarkStar1982/life
| Minor49er wrote:
| Simply fantastic. I love Conway's Game of Life. This page makes
| it easy to observe a huge variety of creative patterns.
|
| The book "The Recursive Universe" by William Poundstone is a fun
| look into the Game of Life, pairing observations and thoughts
| about the game with real world physics and life.
| scastiel wrote:
| Thanks for the book recommendation, will check it out :)
| darken wrote:
| Neat! The option called "Bloom" looked especially interesting
| when zoomed out.
| scastiel wrote:
| I think my favourite one will always be the Canada Goose. So
| magnificent :)
| scastiel wrote:
| Hi all! Here is the latest Rust side project I've been working on
| for the past couple of weeks: Lifeee, an implementation of John
| Conway's Game of Life.
|
| It was the opportunity for me to continue my Rust learning
| journey, and I think I'm finally starting to feel a bit
| comfortable with the language, especially ownership :). I also
| wanted to discover what was possible when using Rust for frontend
| development, and I must say I was so impressed by Yew! I didn't
| think it would be so nice to use, especially since I have quite
| some experience with React.
|
| A big difference compared to the various implementations you can
| find (often in Rust and Yew tutorials) is that the grid is
| infinite. This means that you can drag it to move in all
| directions, but also zoom in and out. This was probably the most
| challenging part of my project and involved a lot of calculus and
| doodles in my notebook! Also, since I used a canvas to draw the
| grid (and not DOM elements), the simulation is pretty fast even
| when a lot of cells are displayed :D
|
| What I learned during this project:
|
| - Use Yew [1] for frontend development: not very different from
| writing React components, with the advantages of Rust as a plus!
|
| - Serialize/deserialize data: the available Game of Life patterns
| are extracted from the official Lexicon [2]; I parsed the text
| version to generate a serialized version (separate library: [3])
| that I then import and deserialize in the app.
|
| - Build the web app using GitHub actions and deploy it using
| Netlify: pretty straightforward using Trunk [4] as a bundler
| (also used for development).
|
| You can find the source code of the app on GitHub [5]. Please
| tell me what you think of it! ;)
|
| [1] https://yew.rs/ [2] https://bitstorm.org/gameoflife/lexicon/
| [3] https://github.com/scastiel/lexicon-rs [4]
| https://trunkrs.dev/ [5] https://github.com/scastiel/lifeee-rs
| plonq wrote:
| Nice! I also wrote my own implementation of the game of life not
| long ago! It's less fleshed out, but it was a fun little project.
|
| https://gameoflife.plonq.org/ https://github.com/Plonq/gameoflife
___________________________________________________________________
(page generated 2021-11-12 23:01 UTC)