# PropBeaver Energy Playground

Standalone educational browser game. Evidence edition (version 2), 23 October 2026.

## Run and modify

Unzip the complete source download and serve its root using any static HTTP
server. Open `/energy-playground/`. No build, accounts, API, package installation,
or remote JavaScript dependencies are needed. `index.html` is the deployed,
editable HTML; `model.js` contains all assumptions, `playground.js` handles
interaction, and `playground.css` contains the layout and visual states.

The website source template lives at `apps/web/src/pages/energy-playground.njk`
in the PropBeaver repository. The source archive also contains this template,
the packaging script and the model tests. The template has only Eleventy routing
front matter; its HTML can be edited directly without the rest of PropBeaver.

The bill model now uses source-linked inputs instead of invented U-values or
the first edition's arbitrary controls/solar percentages. NEED 2026 Figure 3.1
supplies four measured fuel-saving medians; Energy Saving Trust supplies eight
conditional GB money estimates. NEED's separate gas/electricity consumption
medians and an Ofgem quarterly rate snapshot form the reference budget.
Every input and its limitations is in evidence.json and model.js.

The combined result is a simplified residual-fuel-budget scenario, not measured
package savings, SAP/RdSAP, an EPC calculation or a property prediction. The
currency-to-budget transfer and multiplicative combination are PropBeaver
assumptions, explicitly distinguished from published evidence. No guarantee,
payback, export revenue or calibrated uncertainty bounds are claimed.
Read the on-page method and each card's conditions before interpreting results.
No game choices are transmitted or stored. Points are game tokens, not prices.

Rebuild the evidence register after changing model inputs:
  node tooling/scripts/prepare-energy-evidence.cjs
Run the tests from the source archive root:
  node --test tooling/tests/energy-playground*.test.js
In the full PropBeaver repo, build Eleventy then refresh the source download:
  npm run build
  powershell -NoProfile -File tooling/scripts/package-energy-playground.ps1
The standalone downloaded HTML needs no Eleventy build.

## Attribution and licence

SPDX-License-Identifier: AGPL-3.0-only

The heat-loss-rate helper in model.js is adapted from Graasp's Insulation
Simulator, by Graasp with contributor Thibault Reidy:
https://github.com/graasp/graasp-app-insulation-simulator
Commit: da1121311026b81a7a85b7f6dbce3a16df7f3025
Original file: src/utils/heatLoss.ts (included unchanged in upstream/).
Upstream project declares AGPL-3.0-only. Full licence: LICENSE.txt.

Changes by PropBeaver: converted the helper to JavaScript, added validation,
created the first edition's example energy budget and heat-loss ratios, upgrade data,
original house SVG illustration, game interface, responsive CSS, unrestricted free play,
drag/drop and keyboard/tap controls. No Graasp 3D models or material
data have been copied. No Graasp runtime or analytics dependencies are included.
In version 2, the Graasp helper is retained with attribution but no longer drives
the bill. The source-anchored fuel-budget scenario, twelve upgrades, evidence
panels and evidence register are PropBeaver's additions. Source references do
not imply endorsement or validation by DESNZ, Ofgem or Energy Saving Trust.

This entire standalone mini game is offered under AGPL-3.0-only, without
warranty. The existing PropBeaver website and brand logo are separate; the
logo is included only to reproduce the displayed preview and is not granted
under the game's software licence. Replace it with your own brand for reuse.

Corresponding source download:
/assets/energy-playground/energy-playground-source.zip

No proprietary website source, credentials or backend configuration belong
in the source archive.
