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

7.0 KiB
Raw Permalink Blame History

Atlas scientifique du terrain

Larchive alpha.30.5 contient les neuf cas, leurs figures PNG/PDF et données brutes. Coupes du Grand · Cartes du Grand.

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.

./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.

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.

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.