{
  "fetched_at": "2026-10-19T20:38:07Z",
  "source_url": "https://www.kaggle.com/competitions/conway-s-reverse-game-of-life/data",
  "pages": [
    {
      "name": "data-description",
      "content": "<p>We have provided 50,000 training games and 50,000 test games, whose starting board you must predict. &nbsp;Each board is 20x20, for a total of 400 cells per board.&nbsp;<strong>Values are listed in a column-wise order.</strong>&nbsp; You are free to create more training games if you desire.</p>\r\n<p>The provided variables are:</p>\r\n<p><strong>id</strong> - each game has an id<br /><strong>delta</strong> - the number of steps between the start and stop boards&nbsp;<br /><strong>start.1</strong> -&nbsp;row 1, column 1 of the game's starting board<br /><strong>start.2</strong> - row 2, column 1 of the game's starting board<br />...<br /><strong>stop.1</strong>&nbsp;- row 1, column 1 of the game's stopping board<br />...</p>\r\n<p>Your test-set predictions should be the starting board at delta steps before the stopping board. The games were created by the following procedure:</p>\r\n<ol>\r\n<li>An initial board was chosen by filling the board with a random density between 1% full (mostly zeros) and 99% full (mostly ones).</li>\r\n<li>This initial board was evolved 5 steps.</li>\r\n<li>The starting board's state was recorded after the 5 \"warmup steps\". These are the values in the start variables.</li>\r\n<li>The starting board was then evolved delta steps. Delta was chosen to be uniformly random between 1 and 5. &nbsp;If the stopping board was empty, the game was discarded.</li>\r\n<li>The stopping board's state was then recorded. These are the values in the stop variables.</li>\r\n</ol>\r\n<h2>FAQs</h2>\r\n<p><strong>Why the need for warmup steps?</strong> The transition from an initial random board to the second step can be quite \"nonlinear\" and dramatic. For example, if a board is mostly alive at the first step, it will be mostly dead on the second. We allow the game to warmup for five steps in order to let the cells calm down and settle into a more \"life-like\" state.</p>\r\n<p><strong>Can I predict any valid state?</strong>&nbsp;Unfortunately, we are asking you to predict the single valid state the we started with. If this competition is popular and our server bill doesn't explode, it's possible we will code a game-of-life evaluation metric that would allow any valid start state to score well if it is similar to the end state.</p>\r\n<p><strong>The Game of Life loses information over time. What gives?</strong>&nbsp;Correct, this is a many-to-one problem (many starting states can lead to the same stopping state). For example, many boards that are sparse at the start will end up in the same state (and you will see this in the data). However, over short time scales we expect this to be a minor issue. &nbsp;The largest step back in time in this competition is 5, which we hope is not so far that the degeneracy becomes an issue.</p>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "<p style=\"text-align: center\"></p>\n<p>The Game of Life is a cellular automaton created by mathematician John Conway in 1970. The game consists of a board of cells that are either on or off. One creates an initial configuration of these on/off states and observes how it evolves. There are four simple rules to determine the next state of the game board, given the current state:</p>\n<ol>\n<li>Any live cell with fewer than two live neighbours dies, as if by underpopulation.</li>\n<li>Any live cell with two or three live neighbours lives on to the next generation.</li>\n<li>Any live cell with more than three live neighbours dies, as if by overpopulation.</li>\n<li>Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.</li>\n</ol>\n<p>These simple rules result in many interesting behaviors and have been the focus of a large body of mathematics. &nbsp;As <a href=\"http://en.wikipedia.org/wiki/Conway's_Game_of_Life\">Wikipedia</a> tells it,</p>\n<blockquote>\n<p>Ever since its publication, Conway's Game of Life has attracted much interest, because of the surprising ways in which the patterns can evolve. Life provides an example of emergence and self-organization. It is interesting for computer scientists, physicists, biologists, biochemists, economists, mathematicians, philosophers, generative scientists and others to observe the way that complex patterns can emerge from the implementation of very simple rules. The game can also serve as a didactic analogy, used to convey the somewhat counter-intuitive notion that \"design\" and \"organization\" can spontaneously emerge in the absence of a designer. For example, philosopher and cognitive scientist Daniel Dennett has used the analogue of Conway's Life \"universe\" extensively to illustrate the possible evolution of complex philosophical constructs, such as consciousness and free will, from the relatively simple set of deterministic physical laws governing our own universe.</p>\n</blockquote>\n<p>The emergence of order from simple rules begs an interesting question--<em>what happens if we set time backwards?</em></p>\n<p>This competition is an experiment to see if machine learning (or optimization, or any method) can predict the game of life in reverse. &nbsp;Is the chaotic start of Life predictable from its orderly ends? &nbsp;We have created many games, evolved them, and provided only the end boards. You are asked to predict the starting board that resulted in each end board. Although some people have examined this problem, it is unknown (at least, to us...) just how difficult this will be.</p>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "<p>You are evaluated on the mean absolute error of your predictions. In this case, this is equivalent to 1 - (classification accuracy). You may only predict 0 (dead) or 1 (alive) for each cell.</p>\n<h2>Submission File</h2>\n<p>For every game in the test set, your submission file should list the predicted starting board on a single row. &nbsp;<strong>Values are listed in a column-wise order.&nbsp;</strong>That is, if you want to predict a matrix,</p>\n<pre>1 2<br>3 4</pre>\n<p>the predicted row would be (1,3,2,4).&nbsp;The submission file should contain a header and have the following format:</p>\n<pre>id,start.1,start.2,start.3,...,start.400<br>1,0,0,0,0,0,0,...<br>2,0,0,0,0,0,0,...<br>etc.</pre>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Prizes",
      "content": "<p></p>\n<p><img src=\"https://storage.googleapis.com/kaggle-media/competitions/kaggle/3638/media/il_170x135.382776261_5xy7.jpg\" alt=\"\" width=\"170\" height=\"135\"></p>\n<p>or a <a href=\"http://www.zazzle.com/game_of_life_glider_tshirt-235104443105921772\">glider t-shirt</a></p>\n<p><img src=\"https://storage.googleapis.com/kaggle-media/competitions/kaggle/3638/media/glider.png\" alt=\"\" width=\"200\" height=\"198\"></p>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "\r\n\t<!-- Begin Base Rules -->\r\n    <h3>One account per participant</h3>\r\n    <p>You cannot sign up to Kaggle from multiple accounts and therefore you cannot submit from multiple accounts.</p>\r\n    <h3>No private sharing outside teams</h3>\r\n    <p>\r\n        Privately sharing code or data outside of teams is not permitted.\r\n        It's okay to share code if made available to all participants on the forums.\r\n    </p>\r\n    <h3>Team Mergers</h3>\r\n    <p>\r\n        Team mergers are allowed and can be performed by the team leader. In order to merge, the combined team must have a total submission count less than or equal to the maximum allowed as of the merge date. The maximum allowed is the number of submissions per day multiplied by the number of days the competition has been running.<br/>\r\n    </p>\r\n\r\n    <h3>Team Limits</h3>\r\n    <p>There is no maximum team size.</p>\r\n    <h3>Submission Limits</h3>\r\n    <p>You may submit a maximum of 5 entries per day.</p>\r\n    <p>You may select up to 2 final submissions for judging.</p>\r\n    <h3>Competition Timeline</h3>\r\n    <p>Start Date: <strong>10/14/2013 8:18 PM UTC</strong></p>\r\n    <p>Merger Deadline: <strong>None</strong></p>\r\n    <p>Entry Deadline: <strong>None</strong></p>\r\n    <p>End Date: <strong>3/2/2014 11:59 PM UTC</strong></p>\r\n\t<!-- End Base Rules -->\r\n<ul>\r\n<li>We may release a new dataset if the problem turns out to be too easy or too difficult. We will reduce the board size if the competition is too hard, and increase it if it is too easy (e.g. it can be brute-forced).</li>\r\n<li>No cellular automata were harmed in the making of this competition.</li>\r\n</ul>\r\n<p style=\"text-align: center;\"><img src=\"https://storage.googleapis.com/kaggle-media/competitions/kaggle/3638/media/Gospers_glider_gun.gif\" alt=\"\" width=\"250\" height=\"180\" /></p>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}