Files
2026-09-12 20:29:32 +02:00

129 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Atlas scientifique du terrain
L[archive alpha.30.5](https://git.botsu.net/koka/sanctuary-beta/releases/download/v0.1.0-alpha.30.5/Sanctuary-Atlas-0.1.0-alpha.30.5.zip)
contient les neuf cas, leurs figures PNG/PDF et données brutes.
[Coupes du Grand](https://git.botsu.net/koka/sanctuary-beta/releases/download/v0.1.0-alpha.30.5/Sanctuary-0.1.0-alpha.30.5-Grand-coupes.png) ·
[Cartes du Grand](https://git.botsu.net/koka/sanctuary-beta/releases/download/v0.1.0-alpha.30.5/Sanctuary-0.1.0-alpha.30.5-Grand-cartes.png).
## Acquisition native
`TerrainAtlas305GameTests` charge les registres réels de Minecraft 26.3-pre-2
et les ressources Sanctuary. Il crée le même `RandomState` que le générateur
pour chaque graine et taille. Il compile les fonctions de densité natives,
sans réimplémentation du bruit en Python. Le serveur de test utilise un monde
plat ignoré pour démarrer rapidement ; aucun chunk Sanctuary ni aucune
expansion nest créé pour cet export.
```sh
./gradlew :sanctuary:runGameTest -PsanctuaryAtlasOnly=true \
-PsanctuaryAtlasSeeds=0,42,-7228211907433324401 \
-PsanctuaryAtlasRevision=REVISION_DU_CODE
python3.14 -m venv build/atlas-venv
build/atlas-venv/bin/pip install -r scripts/terrain-atlas-requirements.txt
build/atlas-venv/bin/python scripts/terrain_atlas.py --output build/atlas306 \
mods/sanctuary/build/run/gameTest/diagnostics/atlas306/terrain-*.json
```
Le tracé livré utilise Python 3.14 ; les versions de Matplotlib et NumPy
sont épinglées dans le fichier de dépendances.
Les propriétés atlas sont réservées aux tests. Les tests de génération complets
restent actifs dans `check` sans ce paramètre. Ne pas lancer deux Gradle de test
simultanément : leur dossier de monde temporaire est partagé. Les diagnostics
existants peuvent rester dans le dossier ; vérifier graines, version et provenance
avant den faire une archive. Aucune sauvegarde personnelle nest utilisée.
## Lecture des planches
- Cartes : nord en haut, X et Z en blocs, rapport daspect réel. Les quatre
profils partagent les mêmes échelles de couleur. La palette daltitude ne
représente pas les blocs ou les biomes ; du blanc nimplique pas de neige.
- Altitude : dernier solide rencontré, recherche verticale par pas de 2 blocs.
Une cellule grise signifie quaucun solide na été échantillonné dans la colonne.
- Épaisseur cumulée : nombre d’échantillons solides multiplié par 2 sur Y2..418 dans la 30.6 (Y2..382 dans la 30.5).
Ce nest ni une densité physique, ni un volume exact de matériaux minables.
- Roche continue : épaisseur depuis le sommet jusquau premier vide échantillonné.
Un petit résultat peut signaler une voûte mince, un surplomb ou un fragment.
- Coupes : trois plans Z=0, Z=96 et Z≈−rayon/4, sur toute la hauteur naturelle.
Bleu pour la densité négative, rouge pour la positive ; frontière zéro en noir.
L’échelle colorée sature au-delà de ±0,3 ; les données conservées vont jusqu’à ±1.
Le pas horizontal des cartes est de 12 blocs, le pas vertical de 2. Les coupes
sont échantillonnées tous les 2 blocs dans les deux axes. Les images ne sont
pas lissées. Le champ est quantifié à 0,0001 en conservant son signe autour de
zéro. Les petits détails peuvent être manqués : le contrôle des fragments en
volume utilise séparément une résolution dun bloc dans les tests complets.
Leau, la lave, les matériaux de surface, végétaux, biomes et structures ne
figurent pas dans cet atlas de **densité avant décoration**. Les tests natifs
de rivières et de structures vérifient leur présence effective dans des chunks.
Une coupe 2D ne permet pas, seule, de conclure à la connectivité dune grotte 3D.
## Comparaison et conservation
Les tableaux utilisent les mêmes coordonnées dans chaque variante. La part
des plateaux conservés compare les colonnes de base dont le sommet atteint
Y200, avec une tolérance de deux blocs. Les statistiques d’épaisseur du toit
utilisent uniquement les colonnes atteignant Y200 dans **les quatre variantes**.
Ce sous-ensemble ne représente pas toutes les falaises de l’île.
Larchive de livraison contient JSON natifs, PNG, PDF, résumés, script de rendu,
versions Python et empreintes des fichiers. Elle est attachée à la release,
pour que les images restent récupérables même après nettoyage du dossier build.
Le manifeste relie les données au binaire livré et à la révision source.
Les vues sont générées par Matplotlib à partir des mesures ; aucune image
générative nintervient.
Le libellé « 24 / 27 » désigne le champ de la 27 restauré depuis la 24, pas
une simulation de tous les matériaux et structures historiques de la 24.
Les samplers 30.1 et 30.4 sont conservés pour comparer des transformations
exactes, et non des approximations dessinées pour illustrer un résultat attendu.
## Comparaison 30.6 et infrastructures
Lexport courant remplace la colonne 30.4 par la comparaison directe 30.5/30.6.
`compileHistorical305` conserve exactement le coefficient 0,80 ; le champ livré
utilise 0,95. Le renderer accepte également les anciens exports 30.5.
Des coupes supplémentaires Y260..418 ciblent les morceaux de terrain supérieurs.
Les JSON courants sont dans `diagnostics/atlas306/`.
`scripts/structure_atlas.py` superpose les plans ferroviaires au relief et trace
les coupes des blocs du village effectivement générés par `Village306GameTests`.
Le pourcentage est une estimation de surface projetée à partir du pas de
12 blocs ; le numérateur inclut les colonnes de ballast et les chemins. Ce nest
ni une longueur de rails en pourcentage ni une part du volume de l’île.
```sh
build/atlas-venv/bin/python scripts/structure_atlas.py \
mods/sanctuary/build/run/gameTest/diagnostics/village306/724-0.json \
mods/sanctuary/build/run/gameTest/diagnostics/atlas306/terrain-724-0.json \
--output build/atlas306/structures
```
## Finition 30.7
Le terrain de 30.6 est conservé. Lexport natif est répété sur les neuf couples
512 / 724 / 1 024 × 0 / 42 / -7228211907433324401 pour comparer exactement les
colonnes et les coupes avant décoration. Lenrichissement des minerais et les
petites structures nappartiennent pas à ce champ de densité.
`scripts/finishing_atlas.py` superpose les rails planifiés, les axes des traversées
parcourues dans les blocs, les ruines asséchées et les réservations aériennes.
Les rectangles représentent les emprises ; ils ne représentent pas des îlots
rectangulaires. Le script refuse des rapports de graines ou tailles différentes
et des témoins natifs non réussis.
```sh
build/atlas-venv/bin/python scripts/finishing_atlas.py \
--terrain build/atlas307/raw/terrain-724-0.json \
--village CHEMIN_DU_RAPPORT_VILLAGE \
--transit CHEMIN_DU_RAPPORT_TRANSIT \
--aerial CHEMIN_DU_RAPPORT_AERIEN \
--ruins CHEMIN_DU_RAPPORT_RUINES --output build/atlas307/installations
```
Les preuves, cartes PNG/PDF et leurs empreintes sont ajoutées à larchive de
livraison. Ces cartes sont des vues de diagnostic opérateur, pas des cartes
automatiquement révélées aux joueurs.