Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ eframe = { version = "=0.33.3", optional = true, default-features = false, featu
[features]
default = ["png-export"]
png-export = ["dep:png"]
force-serde = ["dep:serde", "dep:serde_json"]
parallel = ["dep:rayon"]
work-observation = ["parallel"]
desktop = ["dep:serde", "dep:serde_json", "dep:eframe", "png-export", "parallel", "work-observation"]
Expand Down
82 changes: 82 additions & 0 deletions docs/education/NATIVE_ADMISSION_INTEGRATION_REVIEW.md
Original file line number Diff line number Diff line change
Expand Up @@ -1079,3 +1079,85 @@ No numerical kernel, tolerance, recorder/model contract, selector, qualification
gate, historical inventory or A1 status changes. Initial 94062 execution receipts
retain that historical subject; fresh clean committed qualification, affected
checks and current-head hosted gates are required before integration.


## Shared authored force fields and accepted recording custody, 2026-10-20

This explicit source-admission extension covers the backend force-domain branch
at `43ec505218c43594641ecbb80873bec8c88d7d2c`, based on main
`fd7c0f0aee63bc8710df99f9bb01154e7619b974`. The admission commit changes only
this appended record and its version-three inventory binding; native source
bytes remain those of the reviewed subject. The complete conservative closure
grows from 124 to 126 paths: two added, eight changed, 116 unchanged, none
removed. Every `src/` path, build/toolchain input and existing independent
qualification input remains selected, including unchanged desktop sources.

The bounded source scope is:

- `src/force_field.rs` adds version-one authoring values, stable object IDs,
rigid transforms, enabled state, static half-open activation intervals,
directional/radial/vortex fields and global/sphere/box support with optional
smooth edge attenuation. Validated immutable snapshots share one evaluator.
Acceleration is in m/s²; force density is in N/m³ and requires positive
density in kg/m³. Finite-input, zero-distance and bounded-object checks
refuse unsupported or nonfinite evaluation.
- `src/forces.rs` shares the existing MAC face-update loop with authored
acceleration evaluation. Closed-box walls retain their existing treatment.
`src/simulation.rs` adds explicit force-aware fixed-box stepping and
success-stamped pressure/actual-force custody. The legacy pressure accessor
cannot expose incomplete force controls; candidate attempts invalidate the
scratch pressure stamp before use. Pressure projection itself is unchanged.
- `src/particle_fluid.rs` adds the same evaluator to gravity and pair forces
at pre-integration particle positions, using the evaluated local particle
density for force-density conversion. Accepted force controls are stamped
only on success; rejected attempts preserve the existing accepted particle
publication. Source emitters, constitutive stress and turbulence closures
remain distinct owners.
- `src/recording/force_fields.rs` adds a bounded version-one binary metadata
codec with exact float bits and scene validation. Force-aware run identity
binds the scene digest; append and read check run/publication agreement.
`src/recording.rs`, `recording/carrier.rs` and `recording/material.rs`
retain actual accepted force inputs and decode them for selected archives.
Historical unforced hash/control paths remain separate and unchanged.
- `Cargo.toml` adds an opt-in `force-serde` feature using existing dependency
identities; `Cargo.lock` is unchanged. `src/lib.rs` adds public exports.
No desktop/request/worker source is changed by this backend branch.

Exact added/changed source SHA256 pins:

- `Cargo.toml`: `f925dae7a0d74e6024e6e0d64962a275ae4f28fedec5b016341671021b8239ae`
- `src/force_field.rs`: `adecbc5f92b89179a2e38885be2acbcddd42df40061f00ffa5d758224ed045a5`
- `src/forces.rs`: `7b3b48c0813c995a937a44ca1b624411c59dde6419b62041b67456cde2d692d9`
- `src/lib.rs`: `30f5b78a98f6d0c010955a25fc00cc2de4aadf159d260e95afd3f3143dc6f9c3`
- `src/particle_fluid.rs`: `538c498122bbc1045ae59d7363ff87e1dd9a40003fb48eeae835228ad4c65893`
- `src/recording.rs`: `47b2b24bbe9af777ceafdefa6f0b82200a60cea590d0b64f326de1d50c6d7d2d`
- `src/recording/carrier.rs`: `5a9b10b929f650423ad9e58bd7047bfe80cc7bf18138d74bd628c2f3f17af711`
- `src/recording/force_fields.rs`: `2cf3ec9ec191c35c814d48ace301feaccd6cc73311a66970c9d112dad432c4a9`
- `src/recording/material.rs`: `e72e256aa3af46fef9002822de5281caf1de66ba070eb2109f77b083e20ae6ce`
- `src/simulation.rs`: `c08ede6330c4bf6ed7e858e556806ec80628522ceb42286cf52714bf7430c9a1`

This admits an attempt at fresh clean committed-source native/rational
qualification only. It is not a numerical receipt, scientific validation of the
new force laws, native-window evidence or completed desktop parity. Pure
evaluator/codec checks and the seven bounded adapter/recording tests have their
own pinned subjects under `../plans/force-authoring/`; they do not substitute
for the fresh independent qualification required here. Later desktop/runtime
composition must re-establish complete admission and fresh evidence for its
actual committed source.

The historical v1/v2 inventories and all preceding review text/receipts retain
their original bytes and subjects. The v3 ancestry/schema and predecessor
digests remain authoritative. No source selector, numerical threshold,
qualification runner, mathematical oracle, workflow or immutable primary
identity is changed. A stale or malformed present inventory must still refuse
admission rather than fall back. Fresh receipt binding must include the actual
committed manifest and this complete review record; earlier standalone CI
success or historical receipts cannot qualify this admission commit.

Independent review of this exact two-file candidate is required before atomic
commit and publication. This record contains no claim that an unseen patch was
previously approved. Native/rational CI uses its existing 20-minute job bound.
The separate research-book job performs admission preflight and real packet
rejection tests normally and under optimized Python within its existing
90-minute job bound; readiness requires those actual current-head outcomes,
not an assumption that the standalone qualifier includes packet tests.
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"schema": "rheon-reviewed-aligned-strain-native-sources-v3",
"reviewed_base": "21d4122c3d0edb2ca5c3ce089175c70035d737a3",
"scope": "Independently reviewed 1000 cells/m and 10000-axis native/independent-preview controls, including honest diagnostic preflight work/reference-memory accounting; complete 124-path closure with 15 approved changes and 109 unchanged inputs. Fresh committed-source native/rational and hosted acceptance required; measured A1 remains blocked.",
"scope": "Explicit shared authored force-domain, fixed-box MAC/particle adapters and accepted recording custody at 43ec505; complete 126-path closure with two added, eight changed and 116 unchanged inputs. Source admission only; fresh committed-source native/rational and packet/publication checks required; desktop/runtime composition remains separately qualified.",
"preserved_inventory_sha256": {
"docs/education/aligned-strain-native-sources.json": "84c036618b32de66623d8ded24ae8cf95194457e36b9a130087a9c2bf3bd3f6a",
"docs/education/aligned-strain-native-sources-runtime-20261013.json": "6ada2133501aab449ed7ee73f802d8a4593db50c857f0a8f8ce2af4507721d6d"
},
"review_record": "docs/education/NATIVE_ADMISSION_INTEGRATION_REVIEW.md",
"review_sha256": "5836c3fa71bf20b72dbde79a2f5d27dd281ffc3930e0af7ad81f9039fd3edd42",
"review_sha256": "0003bab3b6e4332592319783b140dab64c651b3b0ca1a54d11020e13209e20de",
"source_sha256": {
"Cargo.lock": "3b5836a7be9f1290c698cadaff010e11b93e33b4af839c8549391c23e7d8ec0c",
"Cargo.toml": "10a7b438ec5e7bdb2c8eb95137cf5a42d1cd35687ed47bf63b05a3e42dc1674e",
"Cargo.toml": "f925dae7a0d74e6024e6e0d64962a275ae4f28fedec5b016341671021b8239ae",
"examples/aligned_strain.rs": "11910f4536bbb0057bd7462864f4d2af07d37dcd02103f41d1b93674dcca4547",
"rust-toolchain.toml": "09ff66fa19e0cb8bbad00b6032e28f1cf77b0a37a73013648177b35297f98800",
"src/advection.rs": "0163a872c314b2b3bb7f732348aafdbfa7b162dceea74807b7e7e3eb60ab0849",
Expand Down Expand Up @@ -83,10 +83,11 @@
"src/export.rs": "afe2b79d11f1b8c0ccd16dcaae51a22c8d35ba2e7a23c362729fe907b208f0d3",
"src/fitted_height.rs": "0181db7ffbad932b7e3492ce1a8e260736389e4ded3472c81fe2697861f6777a",
"src/fixed_bottom_ale.rs": "3cc724d376d115fccd8b6c658d7f26b6436f4d13d105a5ae8416fd9c04b17a47",
"src/forces.rs": "c5585940330096890016ff68f25645aa12cdaec2b796a8b234c138e88dd892bb",
"src/force_field.rs": "adecbc5f92b89179a2e38885be2acbcddd42df40061f00ffa5d758224ed045a5",
"src/forces.rs": "7b3b48c0813c995a937a44ca1b624411c59dde6419b62041b67456cde2d692d9",
"src/free_surface.rs": "f43fd9a71da6aac985dfcfb6cc471318227c1727d6e0dad8e2a5feb5b3728a8e",
"src/geometry.rs": "712d04f27d55d7e77f17effefbf2660ca3b8a000de5b7aa51b42b89fe5d3b634",
"src/lib.rs": "c6dfcf187c1cb2bb64835bd7c72a7094b6127730c55bb6ee47d2e676354317ff",
"src/lib.rs": "30f5b78a98f6d0c010955a25fc00cc2de4aadf159d260e95afd3f3143dc6f9c3",
"src/liquid_step.rs": "f99dce6a99f6af8a9aef2436af7f33de58dac3be5998a48e9187fbdf2acc3f93",
"src/liquid_volume.rs": "24623038f62261ce6a17b034e9b6d82c5f0aba02dd0df7aad174c885ed2a8c96",
"src/material.rs": "49874ff972f16a972d706236b34e62f83e994c57e39b642c6d94a1a6f4b7fb66",
Expand All @@ -99,15 +100,16 @@
"src/obstacle_shear.rs": "745da07d5e949276a2e0cb7ac4bdde4aedf557bf6189d5a51581d8ce79b1dc1f",
"src/operator.rs": "cd98684d5204908e5344b2628a8f93ea2a55a90c6678e03a71f2d75ab1f2be38",
"src/parallel.rs": "ee5420673a59ae4fb247b3542878e74902f7a87056744d4303fb400be074677e",
"src/particle_fluid.rs": "ed4ab916e602a55b2245beba5bdbff268fcb704b67fa41248d47ad2598f2468f",
"src/particle_fluid.rs": "538c498122bbc1045ae59d7363ff87e1dd9a40003fb48eeae835228ad4c65893",
"src/pressure.rs": "39ddb79dd3de196e83545679e556c0cd8ce9afae9db9282161f54b8f22f713a5",
"src/pressure_session.rs": "ae687a8822dd6cfeadf5dc6e13e7983d8d1afcdf9e5db1857d4dce64cd0e3fb8",
"src/provider_step.rs": "79167b70a8d164a2367f43816feab443eefb41f23bc4bd940716dd5fd32d495b",
"src/recording.rs": "d022f8f46c288538298896ae444c9780265a6bf77fa9a4e1ba4b9732cf026eb2",
"src/recording/carrier.rs": "b9c83015df214b426315f1840cbd2029d3f4b85525aef2fc8592e97468d54509",
"src/recording.rs": "47b2b24bbe9af777ceafdefa6f0b82200a60cea590d0b64f326de1d50c6d7d2d",
"src/recording/carrier.rs": "5a9b10b929f650423ad9e58bd7047bfe80cc7bf18138d74bd628c2f3f17af711",
"src/recording/comparison.rs": "5a82201f4583cf9eb4cc38d43c7ee88bc54d10a84df46272c2dd84091aa4a307",
"src/recording/diagnostic.rs": "279aff886f1354af203429a2e43cce73cdb485ee5ddd90201d1498e5e7872b7f",
"src/recording/material.rs": "e01a730b04fd34d7fdc797ede735cb45fa743101dd51e8fd406b02bacdd43d00",
"src/recording/force_fields.rs": "2cf3ec9ec191c35c814d48ace301feaccd6cc73311a66970c9d112dad432c4a9",
"src/recording/material.rs": "e72e256aa3af46fef9002822de5281caf1de66ba070eb2109f77b083e20ae6ce",
"src/recording/provider.rs": "980ea5af7094016b13e7d0f39110aa2ff673b0173416e0fe583e6266b7c27f57",
"src/recording/provider/comparison.rs": "90c1230c2cbfb2415c74e5d3c9b66e74f68c7b2096bf4063c5513ac2c6feaa75",
"src/recording/provider/runtime.rs": "d7b2a1f7cfa866b33887f7c8f804999058d6e70a1c9d71421372d151152ebccb",
Expand All @@ -116,7 +118,7 @@
"src/session.rs": "367c370e2257e35de09943e8dc3e1257b994c5e01d1409af1a989682f41c583e",
"src/session/configured.rs": "d99ae990e9c7ddc956f95f414a25832411a4dc84ab434df95ff9f8f68cf52a83",
"src/sgs.rs": "0b4140af63144df8ff1839782b3c70295c18b96decc67aba348a37a33e9f996d",
"src/simulation.rs": "8dea790daf2a2d0801db3003094f9fffe034c9b87946d520a1eacc266c95f078",
"src/simulation.rs": "c08ede6330c4bf6ed7e858e556806ec80628522ceb42286cf52714bf7430c9a1",
"src/solver_provider.rs": "0ab7db08a9016e73d664c730e4ff513d42599a84c680ea061e6604859432a5a5",
"src/solver_provider/configured.rs": "124ca65dd1dec3a8a89043198fb085453a42ca8aff0dc87c67b04b6a986109be",
"src/solver_provider/context.rs": "763debfefc6f9375849c8f503995e20660fc25efef9e827d5942d980e14fe693",
Expand Down
Loading
Loading