# Current update — 28 September 2026

This working copy now has **Aerial information** and **Walk through time** views. Open `?view=walk` for the desktop eye-level experience. Follow three modern mapped paths, switch between present-day reference and an interpretive setting about 2,000 years ago, and inspect illustrative bison/activity areas. Optional shelter forms are conjectural and off by default. Read `research/time-walk-2000.md` for the evidence boundary.

Walking uses the longest continuous lidar-covered segment for each route (about 676 m, 453 m and 1,041 m in this extracted geometry), not the complete official trail length. W/S move along the path, A/D turn, drag looks around, Escape stops. Buttons and a slider provide alternatives. It is path-following, not unconstrained free-roam. The historical setting retains modern terrain/water reference geometry and hides modern buildings/roads/solid trail surfaces. Earlier daily-life code described below remains preserved but is not the active walk controller.

---

# Wanuskewin — researched 3D field guide

Local, portable WolfWhale prototype. Not deployed to wolfwhale.ca and not affiliated with or endorsed by Wanuskewin. The current version combines lidar-derived terrain, a guided experience, original learning activities, and source-linked archaeology research.

## Run

```sh
python3 -m http.server 8765 --bind 127.0.0.1
```

Open http://127.0.0.1:8765/. Serve over HTTP because ES modules are used. Core application assets, the pinned Three.js engine, generated material and terrain are local. The aerial-photo layer is loaded directly from the SGIC public background service and needs internet. If it fails, the viewer explicitly falls back to generated prairie, then terrain colours. Original source links need internet. No accounts, tracking, or backend are included. The optional field notebook uses only localStorage in this browser.

## What changed in the research upgrade

- Replaced the coarse regional surface with covered portions of NRCan’s 2019 Saskatoon lidar-derived bare-earth terrain.
- Stronger DEM-derived shading, quieter water, outlined paths, selected-path emphasis, varied illustrative trees, coverage hatching, and smooth camera movement with reduced-motion support.
- A five-stop guided journey; four places with source-linked questions.
- Seven sourced history chapters, with the difference between historic narrative and modern terrain kept explicit.
- Six evidence cards: knife head, pottery traces, worked bone, plant remains, interpreted gaming piece, and Indigenous-led archaeological interpretation.
- Three original evidence challenges with explanations and source links.
- Elevation/slope views; two-point terrain measurement and an elevation profile. Measurements use source elevations even when display relief is exaggerated.
- Local field notebook with save/readback.
- 36 illustrative model bison, close inspection, repeatable 20-second experiment, and a table for keeping/comparing the last two results.

## Realistic surfaces

The Surface selector offers:

- **Illustrated 3D:** a warm, stylized material treatment of the same source terrain. This is the default visual style.

- **Aerial photography:** actual 2021 SGIC imagery requested directly from its public image service. Source catalog resolution is 0.30 m; this 2048 × 2048 study-area view samples roughly one metre. Exact acquisition day is unavailable. The WGS84 output extent was checked against the terrain bounds. No imagery file is bundled or rehosted. Trees default off to avoid combining generated trees with photographed canopy.
- **Textured prairie:** built-in ImageGen created a generic prairie albedo. Mirrored repeat and subtle material shading add close-view detail. It is not a photograph of this site and does not alter lidar elevations.
- **Terrain colours:** the prior source-derived diagrammatic style.

Elevation and slope analysis temporarily replace imagery so their palettes remain meaningful. Returning to natural colours restores the selected surface. Relief rebuilds reuse textures already loaded in memory.

Aerial content is a map background draped over a separate 2019 bare-earth terrain model, not photogrammetric buildings or a current survey. The SGIC service grants public-website background use and prohibits further commercial redistribution; broader commercial/3D rights remain unresolved. A future sale must address those rights. The independent local prototype retains attribution and does not package provider pixels. Read `research/imagery-options.md` for the actual terms, verified request, open Sentinel-2 fallback lead, and Google API requirements. No Google imagery was scraped and no paid API or billing project was created.

The ImageGen prompt, tool mode and source asset are recorded in `assets/IMAGEGEN-PROVENANCE.md`.

## Walkable historical daily life

Choose **Daily life** or **History → Step into daily life**. This is an original illustrative learning experience at a hypothetical camp location, not a reconstruction of a documented person's day.

- Three periods draw on Dog Child, Red Tail and Wolf Willow research. Period dates and uncertainty are explained in `research/historical-pov.md` and `history-life-data.js`.
- Move at human height with WASD/arrows or held on-screen walking buttons; drag to look. The compact camp has coverage, water, boundary and prop collision guards. Optional guidance labels include explicitly named instant-move accessibility shortcuts.
- Scout the land, gather a symbolic plant resource, investigate stoneworking, observe a model herd and plan using evidence. Four resource/knowledge tokens allow a return-to-camp completion. These activities teach observation and planning; they are not realistic survival equations, actual plant identification, a hunt reenactment or kill simulation.
- The earliest period has open activity areas without a claimed shelter or hearth; the middle period uses a floor trace associated with house-pit evidence, without inventing the unknown roof/walls; the later period includes illustrative hearth/pottery activity. Figures and props are original illustrations, not replicas or cultural costume records.
- Entering daily life forces true 1× terrain and illustrated or generated material, hides modern roads/buildings/labels, and disables aerial-photo selection. It uses a modern ground reference and does not reverse thousands of years of landscape change. Leaving restores the prior view, relief, analytical mode and imagery.
- Optional guidance can be switched off; choosing another period or resetting starts a new activity loop. The prototype does not store game progress remotely.

## Controls

Drag to orbit; right-drag to pan; scroll/pinch to zoom. Arrow keys orbit, +/- zoom, Home resets. Overview, Valley, Visitor centre and Ground view are camera presets. Ground view is a low camera preview, not collision-aware first-person walking.

Land tools → Measure two points enables two terrain selections. Dragging still adjusts the view. A transect crossing missing lidar coverage is rejected; it is never filled with invented values. Measurements are approximate horizontal distances and source-derived height differences, not a safe-route assessment.

## Accuracy and coverage

Active terrain source: `SK-Saskatoon_2019-1m-dtm.tif`, NRCan HRDEM, acquisition metadata dated 2019-05-30, source CRS EPSG:3979, vertical datum CGVD2013, Open Government Licence – Canada.

Only a 2,382 × 2,433 raster window was fetched with HTTP range access from the much larger COG. The native raster cell size is 1 m; the browser mesh samples it on a 257 × 257 grid, approximately 7.97 × 8.25 m. Native cell size is not a positional/vertical accuracy guarantee. Valid sample elevations range from 466.645 to 501.789 m. The source may omit subsequent landscape/building changes.

About 68.11% of grid samples in the 2.04 × 2.1128 km study rectangle have valid lidar coverage. All four learning-stop geometries fall within source coverage. The renderer requires all four interpolation neighbours to be valid and excludes uncovered triangles, overlays and measurement points. A flat hatched area is only a no-data graphic, not terrain. No older regional elevations are rendered or measured. The old Terrarium grid is retained as a development record, with its attribution.

88,316 valid terrain triangles passed a geometry check with zero outside coverage. The current illustrative vegetation layer has 156 trees; locations/species are not a measured inventory. Building footprints come from OpenStreetMap; untagged heights remain estimated at 6 m. Roofs, façades, interiors and 2020 architectural renewal are not reconstructed. Riverbanks use OSM relation 6679194, local ways 1027289778 and 1027275682. Water is draped on the measured surface and is not a hydrological model. Creek width remains illustrative.

The local display approximates horizontal metres using 68,000 metres/longitude degree and 111,200 metres/latitude degree. This is not an independently surveyed coordinate reconstruction. Public trail listing lengths are not measurements of the extracted geometry. Current official name “Trail of the Bison” differs from OSM’s “Trail of the Buffalo”; correspondence has not been field-verified.

No verified ancient camp, individual, route or excavation location is reconstructed. The separate Daily life mode uses an explicitly hypothetical teaching scene. The camera view accompanying a Wolf Willow story does not locate that excavation. Bison shape, positions and movements are illustrative and are not a validated buffalo-jump simulation.

## Research and evidence

- `research/archaeology.md`: 20 institutional/primary sources, claims, chronology conflicts, archaeology, named research, artifact leads, activity ideas, and rights status. Selected thesis sections were examined; this is not a complete critical reading of every thesis.
- `research/geography.md`: confirmed lidar, coverage tests, data licences, imagery leads, architecture references, ecology and asset-reuse limits.
- `research/DESIGN-FINDINGS.md`: design reasoning and next evidence needed for a stronger recreation; recommendations, not a replacement product backlog.
- `learning-data.js`: source-linked educational statements, questions and activities.
- `data-provenance.json`: active source, mesh/coverage rules and subset hash.

No archaeological artifact scans, park photography, thesis figures, official teaching scripts, copyrighted videos or subscription course materials are bundled. Public reading access does not establish asset reuse rights. No external messages or requests were sent.

## Rights

- NRCan: contains information licensed under the Open Government Licence – Canada: https://open.canada.ca/en/open-government-licence-canada . Dataset metadata: https://datacube.services.geo.ca/stac/api/collections/hrdem-lidar/items/SK-Saskatoon_2019-1m . Source: https://canelevation-dem.s3.ca-central-1.amazonaws.com/hrdem-lidar/SK-Saskatoon_2019-1m-dtm.tif . This derived rendering and sampling were not endorsed by NRCan.
- Map geometry © OpenStreetMap contributors, ODbL: https://www.openstreetmap.org/copyright . Raw extract included as `source-map.osm`.
- Three.js 0.169.0 / OrbitControls: MIT licence retained under `vendor/`.
- Historical regional terrain: Mapzen/Tilezen credits retained in `elevation/ATTRIBUTION.md`; not the active renderer source.

## Verification — 27 September 2026 UTC

- JavaScript syntax and geometry/source checks passed.
- Lidar mask, stops, herd initial positions, and relief-independent elevation calculations checked.
- Browser loaded without JavaScript errors. Guided tour completion, seven-chapter navigation, six-card cabinet, and all three challenge flows exercised.
- Actual two-point browser measurement produced a 22 m horizontal transect and a 2.1 m drop, with a rendered profile. This is functional verification, not independent ground truth.
- Relief rebuild clears the previous measurement while retaining selected surface mode. Elevation/slope switching checked.
- Notebook save/readback verified using a temporary test note; previous visible value restored.
- Bison run completion, keep-result table and parameter reset checked.
- Daily-life station choices, retry feedback, all-four-token completion, return to camp, era reset and held walking input were browser exercised; numeric tests also cover bounds, collision and stopping on blur/exit.
- Desktop (1440 × 1000) and phone (390 × 844) layouts had no horizontal overflow. Final eyes review found no blocking visual defects.

## Files and rebuild

The app runs `index.html`, `style.css`, `scene.js`, `historical-pov.js`, `history-life-data.js`, `imagery-data.js`, `assets/`, `experiences.js`, `learning-data.js`, `terrain-lidar-data.js`, `map-data.js`, `river-data.js`, and `vendor/`. The original source raster subset and public extent are under `elevation/`.

Rebuild helpers under `tools/` document the acquisition and sampling procedure. Lidar scripts require Python with rasterio, pyproj and numpy; the initial regional decoder requires Pillow. They are developer tools, not required to run the viewer. Temporary local development environments are not bundled.

Older 2D and pre-research 3D builds are preserved as ZIPs in the parent output directory. This version remains an independent, stylized educational prototype; exact architecture, cleared object scans, current imagery and validated historical scenes need further source work.
