Commit graph

3,094 commits

Author SHA1 Message Date
Meta Vens
f85a0b0e17 Merge cut sim-contact (Soul verdict cut-sim-contact.s2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:29:56 +02:00
Meta Vens
08f19e6c6c Map: cut-sequence lines for mining-index-tree, mining-belt-cells, sim-speed-scale
Their specs were withdrawn under map-only-what-runs once their deferred
findings moved to follow-ups.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:05:11 +02:00
Meta Vens
734804b6d7 Aetheria release map: cut sequence of the 51 cuts withdrawn under map-only-what-runs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:00:40 +02:00
Meta Vens
b53d071ef6 Merge cut ships-addon-guards (Soul verdict cut-ships-addon-guards.s2) 2026-10-12 19:44:33 +02:00
Meta Vens
fdcd5298b1 ContactTests: add the 3000-mass Mid hull the unequal-mass tests use
The previous commit's ContactTests did not build a Mid hull, so ten tests failed on the missing hull (full run at
806641ae: 1481 passed, 10 failed). The commit builds; those ten tests are red until this one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:44:39 +02:00
Meta Vens
806641ae62 Ship contact is a restitution impulse along the normal while closing; e is GameplaySettings.ContactRestitution (.5)
Ruling ship-bounce-restitution-setting: j = -(1+e)(v_rel.n)/(1/m1+1/m2), applied only while closing. The old
exchange formula (PostCollisionVelocity) is deleted. ContactTests now pin momentum, frame shift, restitution,
no impulse while separating, slow closing, tangent of both bodies, inactive hulls, the contact point radius
and the three-body pile. Not yet built or run; verification follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:28:29 +02:00
Meta Vens
042a13f979 smoke_package: a tall image whose width rounds up pins rounding of the first axis (200x513 -> 100x256, not 99)
Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 07:03:13 +02:00
Meta Vens
aa2bf0d41f Guards fix: cultcache-py version is read from the imported module; texture cap boundary, rounding, orientation, group and failure cases pinned
Findings of verdict cut-ships-addon-guards.s1: guard-not-import (the version now comes from the checkout the imported
cultcache_py lives in, one owner, no pyproject-beside-a-path), prefix-compare-survives (0.3.0.1, 0.3.0rc1, 0.3.00
refused), cap-boundary-unpinned and group-restore-unpinned (smoke_package texture_boundary_cases: at the cap, one over,
height-long, non-square rounding, file/packed/node-group images, failed export restores). A copy whose scale raises is
removed. All commits build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 06:59:24 +02:00
Meta Vens
68519f9fb9 Merge cut emoji-sequences (Soul verdict cut-emoji-sequences.s3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 06:39:40 +02:00
Meta Vens
faa05eec83 Merge cut vapour-cloud-presenter (Soul verdict cut-vapour-cloud-presenter.s2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 06:39:33 +02:00
Meta Vens
febda87ec5 ContactTests: the docked-hull visitor is the heavy hull, which keeps closing after its first exchange
With equal masses the first exchange stops the visitor and a second contact with the docked hull cannot show.
Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 06:33:28 +02:00
Meta Vens
8d7b90111a ContactTests: the docked-hull test closes a third ship on the carrier, so excluding the docked hull is observable
A docked hull shares its carrier's velocity, so the pair alone never closes; a visitor does expose a second contact.
Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 06:32:58 +02:00
Meta Vens
b00fc7e581 Emoji font rebuilt in python:3.13-slim on Yggdrasil with the 15 FE0F-less twins (reproduced: second run equals the lock); lock records fe0f_less_twins=15
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 06:27:25 +02:00
Meta Vens
7565458b4d ContactTests: the distant pair starts beyond the discs' reach after the tick's own movement
The pair moved 0.1 each before the contact step and so closed inside the 14.14 bound; start them 15 apart.
Builds; the first commit's only red test was this one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 06:05:48 +02:00
Meta Vens
d8150a504f Release map: visibility refresh at efee2a2a (body facts VR1-VR15, cut order, model page amendments)
Imagination imagination-aeth-refresh-visibility, session self-2026-10-11-ag2. The model page
amendments are stated in this section; folding them into the Visibility rework rows is owed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 06:04:38 +02:00
Meta Vens
7392bc8fe1 Ship contact is a simulation rule: Zone steps Contacts, Unity physics writes no Entity
Contacts.Step exchanges normal velocity between touching hull discs (PostCollisionVelocity moved verbatim
from ShieldManager) and publishes Zone.Contacted; ShieldManager presents it; HullCollider.OnCollisionEnter
and ShieldManager's ship-on-ship branch are deleted. Not yet built or tested (verification follows).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:46:32 +02:00
Meta Vens
873ee6eae4 Guards tests: version drift of any size is refused; the texture fixture's aspect is not a power-of-two ratio
The untested-cultcache test now refuses 0.4.0, 0.3.1 and 0.3 as well as 9.9.9 (a major-only comparison survived).
smoke_package's hull map is 4096x1000, so the scaled size (2048x500, 512x125) is not what a clamp of both sides or of
the other axis would give. Builds: yes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:41:08 +02:00
Meta Vens
efee2a2adc Merge origin/master into merge/contact-reveals
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:40:05 +02:00
Meta Vens
4acf05da46 smoke_mounts: the mirror matrix on wide grids, 14 and 15 cells across
Passes 7 and 8 run mirror_matrix on ships whose grids are 14 (even) and 15 (odd) wide; the expected twin cells are
grid_w - a - w computed in the matrix itself. Pass 6 (5 wide) now runs through the same matrix_pass function. This is
the commit that adds the cases for follow-up mirror-wide-grid-test. Builds: yes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:38:42 +02:00
Meta Vens
5545c850a2 Add-on: Max texture preference; ship.glb exports larger material images scaled
_export_glb points each Image Texture node of the exported objects' materials whose image is longer than the Max texture
preference (default 2048) at a scaled copy (longest side at the cap, aspect kept) and restores the originals and removes
the copies in its finally block, so the .blend's images are never modified. smoke_package.py reads the GLB's PNG
headers: a 4096x1024 map exports at 2048x512 and at 512x128 under a 512 cap, a 256x256 map exports as it is, the .blend
images keep their size and no copy is left in bpy.data.images. Builds: yes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:37:50 +02:00
Meta Vens
4f9ada5a6f ship_cc: refuse a cultcache-py that is not the tested version
_libraries reads [project].version from the pyproject.toml beside the cultcache-py source before importing it and raises
ValueError naming the version found and the packages path when it differs from TESTED_CULTCACHE_PY (0.3.0) or the file is
missing. Builds: yes. test_refuses_a_file_with_no_record fails as before (cultcache-py unpack error on a 0-byte file).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:31:46 +02:00
Meta Vens
31d19eae64 Merge eureka/aetheria-release-contact-reveals: reveals end on perception (cut-contact-reveals.r2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:18:17 +02:00
Meta Vens
ee479eba7a test_fe0f_twins: the function test no longer depends on the font already holding twins
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:57:33 +02:00
Meta Vens
8fc19aed94 Emoji font build: add FE0F-less twins of the 15 ligature records TMP cannot match (ruling fe0f-less-ligatures-in-font-build); Eyes' TMP diagnosis; headless GSUB test
The committed font is not rebuilt yet, so test_fe0f_twins.py's first test is red against it; the font lands next. Builds nothing in Unity.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:57:04 +02:00
Meta Vens
3da1622478 Vapour presenter: draw the sim's OpacityAt directly, not divided by the cloud's raw Opacity
OpacityAt is already saturated to 0..1 by the sim, so a 0.3 vent reads thinner than a full
cloud and nothing above full draws thinner. Builds (Unity compile run after).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:53:18 +02:00
Meta Vens
aebf12e195 Emoji routes: Emoji.asset named in TMP's emoji fallback list as well as the global list (ruling emoji-fallback-route); EmojiCheck asserts both routes and prints the font serving each piece of a failing sequence
Keycaps and the other body-font-based sequences now collapse: 25 failures become 13. The 13 FE0F+ZWJ sequences still show three pieces. Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:50:31 +02:00
Meta Vens
26cdd578c1 Merge eureka/aetheria-release-ships-addon-mounts (cut-ships-addon-mounts.s2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:44:13 +02:00
Meta Vens
e1a5c6a1b0 Emoji sequences: liga in the 142 serialized TMP texts (43 prefabs, 2 scenes) and in TMP Settings, written by EmojiFont.EnableLigatures
Every prefab and scene was re-serialized by Unity 6, so each file also carries the editor's own migrations (m_RootOrder, m_ConstrainProportionsScale, m_enableWordWrapping to m_TextWrappingMode, name quoting). Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:37:07 +02:00
Meta Vens
6d2d52c529 EmojiFont, EmojiCheck: OTL_FeatureTag lives in UnityEngine.TextCore; kerning read from the serialized m_enableKerning
Compiles (Unity 6000.3.24f1 batchmode). Fixes the previous commit, which did not.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:36:52 +02:00
Meta Vens
96b255541c Mirror Mount reflects the footprint's cells about the centre line, derived once from the footprint
hull_grid.mirror_position gives the twin Position as grid_w - a - w, so an even-width footprint mirrors to its true
reflection and the cell lookup's tie rule no longer decides a mirror; the twin's object stands in the cell that Position
puts it in, so Package derives the same Position back. test_hull_grid pins the reflection on odd and even grids and
rows of 4 or more cells; smoke_mounts runs footprint widths 1 to 4 at every cell of an even and an odd grid, the
boundary tie, the armour and arc copy, the muzzle's local X, the centre-line threshold, the grid edge and the parent
check, and keeps a mirrored pair of two-cell footprints through Package and the validator. Every commit builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:33:26 +02:00
Meta Vens
bd78401967 Emoji sequences: EnableLigatures writes liga into every serialized TMP text and TMP Settings; EmojiCheck renders every fully-qualified sequence as one visible character
Adds tools/emoji/emoji-sequences.txt (2760 fully-qualified multi-code-point sequences from the pinned emoji-test.txt), written by fetch_emoji_font.py and recorded in the lock. Not compiled yet (first Unity pass follows); the asset changes land in a later commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:22:40 +02:00
Meta Vens
56129b43d5 Package derives no mounts for a ship with no Ship Root, and refuses a framed one whose layout is not loaded
smoke_package's hand-tagged ship has a weapon-mount object, no Ship Root and no loaded
buffer; the first mounts commit refused it. A ship with no frame has no grid to derive
from, so Package leaves its rows alone as before. A framed ship with a mount and an
unloaded buffer is refused with 'Load Layout first'. All commits build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 04:03:12 +02:00
Meta Vens
d50f54bf53 Release map: refresh 2026-10-12, feedback and loot (body facts RF1-RF9, the sim/present splits)
Imagination imagination-aeth-refresh-feedback-loot, session self-2026-10-11-ag2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:51:46 +02:00
Meta Vens
730a4e5a52 Release map: missile-stats r3 (stat groups as gear-part behaviours) and its body facts MS1-MS9
Replaces "The missile's stats" paragraph and appends the refresh's premise
check, body facts, rationale and downstream notes (Imagination
imagination-aeth-refresh-missile-stats, session self-2026-10-11-ag2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:48:57 +02:00
Meta Vens
a89d885c6b smoke_mounts: an asymmetric footprint shows Mirror Mount turning it
All commits build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:47:44 +02:00
Meta Vens
1660a68a8a Fog Patch prefab carries VapourCloudInstance at the origin and unit scale; ZoneRenderer.CloudPrefab assigned in ARPG
Wired through the Editor in batchmode (component, root pose reset, field assignment); the scene diff is the one
CloudPrefab line, the Editor's unrelated field churn reverted. Builds (Unity compile 0 error CS).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:46:24 +02:00
Meta Vens
42227f3435 Blender add-on weapon mounts: Add Weapon, Add Muzzle, Mirror Mount, Remove Mount; Package derives mounted Position and yaw
hull_grid gains mounted_position, facing_yaw, mirror_rotation and mirror_footprint. The
mount helpers edit the layout buffer and create a tagged weapon-mount object with its row
as a pair; Package derives each mounted row's Position from its object and each mount's yaw
from its row's Rotation, then saves the buffer through _save_layout. The panel gets a
Mounts box and greys a mounted row's x and y. smoke_mounts.py pins the gunboat flank,
derive and remove paths. All commits build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:45:12 +02:00
Meta Vens
b614260607 Release map: package-product r4 body facts (refresh against b6262467)
Imagination imagination-aeth-refresh-package-product, session self-2026-10-11-ag2:
ShipAuthoringStore registers no product type, the product writer, sequencing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:44:38 +02:00
Meta Vens
f1c36b4ccb Vapour clouds are drawn as fog banks: one ZoneRenderer subscription, VapourCloudInstance presenter, DrawAhead for a free body
ZoneRenderer loads and subscribes Zone.Clouds like mines and destroys a bank on removal; VapourCloudInstance
places a Fog Patch brush at DrawAhead.Position(cloud.Body, Lead) and thins its _Depth with OpacityAt. The prefab
and scene wiring follow in the next commit; this one compiles but CloudPrefab is unassigned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:34:50 +02:00
Meta Vens
0af394bd4b Exact-gate departure test: the observer sits where its info per unit light is a power of two (previous commit's test does not pass)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:03:43 +02:00
Meta Vens
ddbd120af0 Pin the departure gate's strictness with a light exactly at the threshold
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:02:54 +02:00
Meta Vens
53ff5f7c01 Unreachability test: the departing ship leaves by the warp path, so its own subscriptions to the observer are not the question
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:23:33 +02:00
Meta Vens
f815406e9e Qualify ReferenceEqualityComparer (a3 commit does not build: ambiguous name)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:22:42 +02:00
Meta Vens
a23a76b608 Step-kill test lights the ship at its death; the unreachability test walks the observer's fields
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:22:12 +02:00
Meta Vens
c212ec0232 Reveal book: no scratch holds a departed entity, a destroyed lit gun is refused at the gate, one IsDestroyed rule, departure and allocation pins
Not verified yet at this commit (build and tests run next).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 02:20:46 +02:00
Meta Vens
b6262467f0 Merge cut-scenarios-smoke (verdict cut-scenarios-smoke.s2)
Scenarios.cs Tests list: kept WeaponFeel, Pursuit and Crossing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:28:05 +02:00
Meta Vens
336cf3a684 Merge cut-scenarios-crossing (verdict cut-scenarios-crossing.s3)
Scenarios.cs Tests list: kept Pursuit and Crossing both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:27:47 +02:00
Meta Vens
9131cce3b9 Merge cut-scenarios-pursuit (verdict cut-scenarios-pursuit.s1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 23:27:39 +02:00
Meta Vens
396c02b08f Perceived item destruction ends the reveal in the observer's Sense; moving-subject bearing pinned
Restores the Identified item-end pass and its tests (AnIdentifiedObserverSeesGearDestroyed, the flashing-gun tick case,
the Identified part of SenseAllocatesNothingOnceWarm) that 49ace47f held for this batch, and extends
AnActIsRevealedOnItsOwnTickWhateverTheListOrder to a moving subject (two velocities, both observer orders).
Builds: all commits build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:58:10 +02:00
Meta Vens
4658fa7af6 RunStartTests: the offered-gear checks read the hulls a product sells
GenerationOffersExactlyTheSoldGearSomeHullCanFit compares against LoadoutGenerator.SoldHulls; GearNoHullCanFitIsOfferedOnlyOnceAHullTakesIt
gives its scratch hull a product, since a hull no product sells is no home. The previous commit (2a943370) left both red (found by the
full run); this one is the head. Commit 2a943370 does not pass the full suite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 22:51:07 +02:00