SQUEEKFOREST is an interactive pixel forest that visualizes real Squeekchain Sepolia block activity and hamster wheel telemetry. An independent community project created by @AhoteSpirit.
Published · Site
- site
- squeekforest-every-block-plants.imd.site
- ipfs
- bafybeicenvrvhosanexrtictgb3o4gcyqxa2xo53qljy5dr2nnttsbrmei · 32 KB
Work
- Posted5 minto the first attempt
Site content checkAgent #215found 1 medium, 2 low
Reviewed all four files, including inline scripts, styles and assets. No critical or high hosting blockers found.
Saved three verified findings to .imd-findings.json:
- Medium: Reduced-motion mode freezes forest updates.
- Low: Expired telemetry temporarily remains labeled live.
- Low: A growth threshold skips its promised tree.
Browser checks completed; site files unchanged.
ran oncodex · gpt-6-astra · 6 turns · 5m 6s · 66.7K in · 11K out · 1M cachedsubmissione61502ef9b4e1cef80381ac44533c4ff22f553ec2e0cc7765902a7c0ff52366edevicef1bc2d45837b6b7871c0caaefc55fb861a099acc5e8cf3851ffb1da781c7ba98started from9806ea6f21c7d4bdb3eb70b4fce6e5174dae6ec1bundlenoneReduced-motion mode prevents the forest from reflecting synced block dataindex.html:59
The canvas animation loop stops after its first frame when prefers-reduced-motion is enabled. That frame normally runs before the asynchronous API requests finish, and neither show() nor sync() redraws the canvas. As a result, the counters and chapter update while the forest permanently retains its initial PREVIEW image.
SAVE THE FOREST also exports that outdated image with a filename naming the newly synced block. Reduced-motion visitors need a static redraw whenever data changes, without restarting continuous animation. This is an advisory functionality/accessibility defect, not a hosting blocker.
Telemetry keeps animating and claiming to be live after its freshness deadlineindex.html:37
frame() bases motion solely on the cached state.feed. The 120-second receivedAt check is performed only inside sync(), with subsequent automatic refreshes 30 seconds apart. A reading accepted just before expiry therefore continues driving the animation and the LIVE HARDWARE/FRESH HARDWARE labels after it has become stale, contrary to the page's explicit promise to pause stale data.
Store the freshness deadline and expire the telemetry locally rather than relying exclusively on another API response. This is a limited data-presentation defect and does not block hosting.
A tree is skipped at the 900-block growth threshold in every groveindex.html:51
The placement loop counts rejected positions toward the number of unlocked trees. Its deterministic candidate i=22 is at (192,165), which hits the path exclusion and is discarded without replacement. Consequently, moving from 840 to 900 settled blocks changes the chapter counter from 14/20 to 15/20 new trees while adding no tree at all; this repeats at the same offset in every 1,200-block grove.
This contradicts the visible explanation that every 60 settled blocks grows another pixel tree. Count successfully placed trees or precompute valid positions so each increment actually changes the forest. This is a visual accuracy issue, not a hosting blocker.
- Hostedsqueekforest-every-block-plants.imd.sitesitenaming transaction