Skip to content

[Hacktoberfest Athens] Critical Mesh: build a heat-conduction browser game (Team B) #4

Open

Description

@nikoscham

Critical Mesh: a heat-conduction game, Team B (AI allowed)

This issue is a hands-on example prepared for the Hacktoberfest Meetup Athens x FEAScript, 2026.

Build Critical Mesh, a browser game powered by FEAScript. Players add heat sources to a
metal plate turn by turn. After each turn FEAScript solves the steady-state temperature field.
If the hottest point goes above the critical limit it's game over.

Before you start, give your AI assistant the FEAScript guide:
https://gist.github.com/nikoscham/e9de187f72bb9e0ff0ca66d26ccfd078


The board (physics)

  • Steady-state heat conduction on a 4 m × 2 m metal plate, using FEAScript's internal 2D mesh
  • Use the main-thread FEAScriptModel (workers cannot take coefficient functions)
  • Bottom edge: cooled, fixed at 20 °C
  • Top edge: loses heat by convection (h = 1) to 20 °C
  • Left and right edges: insulated
  • Choose the mesh yourself: each solve must take under 1 s

Tuning

Pick the conductivity, source strength and critical limit yourself. On Normal, a typical game
should hit MELTDOWN after about 5–8 sources.

Game rules

  1. Roll: a d6 roll sets the strength of the next heat source (stronger roll, stronger source).
  2. Place: the player clicks the board (or enters x, y) to place a circular source of radius 0.3.
  3. Solve: rebuild the heat source and conductivity fields from all placed items and solve again.
  4. Check: show the max temperature. If it exceeds the critical limit, the game shows MELTDOWN.
  5. Bank or push: the player can bank the score (number of sources placed) or keep rolling.
  6. Mutation (every 3rd turn): a random circular zone gets a much lower conductivity. The material degrades.

Required features

  • Board contour plot updates after every turn
  • Panel showing: turn number, last roll, max T, critical limit, score
  • Bank, Roll and Restart buttons
  • Difficulty levels (Easy / Normal / Hard)
  • Placed sources and weak zones are visible on the board (markers or shapes)
  • MELTDOWN / banked end screen
  • Each solve takes under 1 s (log the solve time to the console)

Rules for using AI

  • Only use API documented in the guide. If the AI invents a function, catch it and replace it.
  • In the PR description list the AI tool you used.

Definition of done

  • Game is playable from start to MELTDOWN or bank
  • With no sources placed, the max T equals 20 (sanity check)
  • Every team member has at least one commit
  • PR includes a short GIF or screenshot of a game in progress
  • PR description contains Closes #<this issue number>

Bonus goals

  • Two-player mode (alternating turns, highest banked score wins)
  • "Coolant" card: once per game, removes the strongest source
  • High-score table in localStorage

Where and how to contribute

  • Repository: FEAScript-website
  • File: tutorials/critical-mesh-game.html (one self-contained page that also works when
    opened by double-click, as file://)
  • Workflow:
    1. One team member forks FEAScript-website and adds the others as collaborators on the fork
    2. Everyone clones the fork and works on the branch critical-mesh
    3. Commit small steps with clear messages (e.g. "Add board plot", "Add roll and bank buttons")
    4. Push and open a pull request to FEAScript/FEAScript-website main

Activity

  1. added theissue type on Oct 23, 2026
  2. changed the title [-][Hacktoberfest Athens] Critical Mesh: build a heat-conduction browser game with FEAScript (Team B)[/-] [+][Hacktoberfest Athens] Critical Mesh: build a heat-conduction browser game (Team B)[/+] on Oct 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions