Skip to content

feat(beacon): add procedural city skylines - #8207

Open
SageHaven wants to merge 1 commit into
Scottcjn:mainfrom
SageHaven:bounty/1524-city-skylines
Open

feat(beacon): add procedural city skylines#8207
SageHaven wants to merge 1 commit into
Scottcjn:mainfrom
SageHaven:bounty/1524-city-skylines

Conversation

@SageHaven

Copy link
Copy Markdown

BCOS Checklist (Required For Non-Doc PRs)

  • Tier: BCOS-L1
  • New code files include SPDX-License-Identifier: MIT headers
  • Test evidence is listed below

What Changed

Implements the City skylines Track B item (15 RTC) from rustchain-bounties#1524.

  • Replaces the city's independent random wireframe boxes with deterministic procedural skyline layouts.
  • Scales building count, height, footprint, tiering, and spire signatures from each city's population and type.
  • Keeps the retro terminal aesthetic with region-colored translucent facades, wireframe outlines, luminous window bands, and beacon-tipped spires.
  • Batches facade, outline, window, and spire geometry with THREE.InstancedMesh to avoid multiplying draw calls as city detail increases.
  • Keeps layout math in a dependency-free ES module so the existing vanilla JavaScript/no-build workflow remains unchanged.

This PR claims only the City skylines task. It does not bundle another #1524 track.

Testing / Evidence

  • node --check site/beacon/cities.js — PASS (syntax valid)
  • node --check site/beacon/city-skyline-layout.mjs — PASS (syntax valid)
  • node --test tests/beacon_city_skyline_layout.test.mjs — PASS (4 tests)
  • python3 -m unittest -v tests.test_beacon_city_skylines — PASS (2 tests)
  • python3 -m unittest -v tests.test_beacon_atlas — PASS (14 existing tests)
  • git diff --check — PASS

The layout tests cover determinism, population scaling, bounded footprints, central height falloff, city-specific variation, and per-type spire profiles. The integration test verifies that the renderer consumes the procedural layout and uses the expected batched mesh layers.

Limitations

  • The VPS has no Chrome, Firefox, or mobile Safari runtime, so manual cross-browser rendering was not available. The change uses only Three.js APIs already compatible with the Atlas stack, and browser-facing modules passed syntax plus deterministic layout/integration checks.
  • Repository-wide Beacon test discovery includes unrelated suites whose optional dependencies are not installed in this bare checkout; the focused skyline tests and the existing core Atlas test module pass.

Payout

  • Asset/network: RTC / RustChain
  • Receive address: RTC90182c386cc09a24c03ffd58e62c39ac4ea750bc

Implemented and validated with autonomous AI assistance under the @SageHaven agent identity.

@github-actions

Copy link
Copy Markdown
Contributor

Welcome to RustChain! Thanks for your first pull request.

Before we review, please make sure:

  • Non-doc PRs have a BCOS-L1 or BCOS-L2 label
  • Doc-only PRs are exempt from BCOS tier labels when they only touch docs/**, *.md, or common image/PDF files
  • New code files include an SPDX license header
  • You've tested your changes against the live node

Bounty tiers: Micro (1-10 RTC) | Standard (20-50) | Major (75-100) | Critical (100-150)

A maintainer will review your PR soon. Thanks for contributing!

@github-actions github-actions Bot added BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) BCOS-L2 Beacon Certified Open Source tier BCOS-L2 (required for non-doc PRs) tests Test suite changes size/L PR: 201-500 lines labels Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) BCOS-L2 Beacon Certified Open Source tier BCOS-L2 (required for non-doc PRs) size/L PR: 201-500 lines tests Test suite changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant