{"slug": "jx-n-body-engine-0-1-0-arbitrary-precision-python-and-numerical-validation", "title": "JX N-Body Engine 0.1.0: Arbitrary-Precision Python and Numerical Validation", "summary": "Lino Avila and the JX Planet X project have released JX N-Body Engine 0.1.0, a Python toolkit for high-precision Newtonian N-body simulations with built-in numerical validation. The software uses a sixth-order Yoshida integrator and an independent arbitrary-precision Bulirsch-Stoer reference to cross-check results, passing all core validation gates. The project emphasizes that passing numerical gates does not confirm any astronomical detection, and the original Planet X investigation remains unresolved.", "body_md": "*A Newtonian N-body engine built around a sixth-order Yoshida integrator, an independent Decimal Bulirsch-Stoer reference, and conservative scientific claim controls.*\n\nBy Lino Avila | JX Planet X project | August 2026\n\nJX N-Body Engine 0.1.0 is a reusable Newtonian propagation and numerical-validation toolkit written in Python. It grew out of the JX Planet X investigation, but its purpose is broader: to make high-precision N-body experiments reproducible, inspectable, and difficult to overinterpret.\n\nThe software is not evidence of a Planet X detection. The original investigation remains unresolved. Passing a numerical gate shows that a calculation behaved as specified; it does not establish that an astronomical source exists.\n\n**Evidence classification:** MODEL_OUTPUT / numerical validation\n\n**Claim decision:** SCREENING_ONLY\n\n**Numerical status:** PRODUCTION_NUMERICAL_GATE_PASSED\n\n**Latest source-inference status:** BLOCKED_SOURCE_POPULATION_NONCONVERGENCE\n\n**License:** MIT\n\nHigh-precision output is not automatically trustworthy. A result can contain many digits and still be wrong because of an implementation error, an unstable method, an incorrect frame, or an unsupported scientific interpretation.\n\nJX therefore uses two deliberately different propagation foundations:\n\nAgreement between independent methods is stronger evidence of numerical correctness than agreement between two precision settings of the same implementation. It is still only numerical evidence.\n\nThe Python package is organized into focused, auditable modules:\n\n`decimal_math.py`\n\n: Decimal construction, three-dimensional vector operations, and a small analytic sine/cosine kernel used by validation problems.`dynamics.py`\n\n: deterministic Newtonian accelerations, state management, and energy and angular-momentum diagnostics.`yoshida6.py`\n\n: the sixth-order symmetric Yoshida integrator and force-evaluation accounting.`decimal_bs.py`\n\n: the independent arbitrary-precision Bulirsch-Stoer reference integrator.`ias15_gate.py`\n\n: optional adaptive IAS15 convergence tests through REBOUND.`gates.py`\n\n: analytic convergence, coefficient closure, two-body invariant, and force-count gates.`claims.py`\n\n: evidence labels and a conservative decision state machine.`provenance.py`\n\n: source hashes, environment records, and run-record generation.`production_benchmark.py`\n\n: locked benchmark verification and cross-trajectory comparisons.`de441_anchor.py`\n\n: import and validation of a transparent DE441-anchored benchmark state.`cli.py`\n\n: command-line access to validation and reproduction workflows.The complete executable source, tests, benchmark inputs, machine-readable results, and checksum manifest should be downloaded from the versioned release linked at the end of this article. Publishing the source as an archive rather than as formatted article text preserves ASCII characters, indentation, and file boundaries.\n\nThe core validation suite encodes its acceptance criteria in the software rather than relying on a visual judgment of trajectories. The preserved version 0.1.0 run produced the following results:\n\n| Gate | Measured value | Encoded acceptance criterion | Result |\n|---|---|---|---|\n| Yoshida coefficient closure | 0 at stored precision | Exactly zero | PASS |\n| Analytic oscillator convergence | 64.00069 | Between 60 and 68; sixth-order expectation is 64 | PASS |\n| Two-body energy | 8.68e-27 relative drift | Less than 1e-12 | PASS |\n| Two-body angular momentum | 2.0e-79 relative drift | Less than 1e-60 | PASS |\n| Optimized force count | 8,000 | Exactly 8,000 | PASS |\n\nThe oscillator test compares the propagated phase-space state against independently evaluated Decimal sine and cosine values. That matters because a symplectic map can preserve a phase-space norm unusually well even when its phase is wrong.\n\nThe preserved production workflow adds stronger checks around the core unit-scale tests. It verifies the benchmark manifest, reruns 160-bit and 224-bit Yoshida members, compares serialized trajectories, and checks the higher-precision Yoshida output against an independently preserved Bulirsch-Stoer reference.\n\nThe encoded production criteria include:\n\nThe final 100-year DE441 numerical audit used an independent 78-decimal-digit Bulirsch-Stoer reference. It completed in 232.0 seconds and reported:\n\nThe complete release record reports thirteen packaged tests passed. The numerical status is `PRODUCTION_NUMERICAL_GATE_PASSED`\n\n. These are numerical acceptance results, not observational findings.\n\nThe DE441 workflow constructs a 20-body benchmark containing the Sun, Jupiter, Saturn, Uranus, Neptune, and fifteen massless synthetic tracers. The preserved epoch is TDB Julian Date 2461200.5 in J2000 ecliptic axes.\n\nThe benchmark distinguishes its inputs explicitly:\n\nBefore the independent reference was added, the 160/224-bit Yoshida precision pair already produced a massive-body position mismatch of 3.66e-44 AU, zero bound-state mismatches, and a relative energy drift of 6.59e-17. Its projected 30,000-year runtime was 1,861 to 2,269 seconds. The independent 78-digit Bulirsch-Stoer run then closed the numerical gate.\n\nEven though the numerical comparisons passed, the final decision remains SCREENING_ONLY because numerical propagation cannot establish an observed source.\n\nA useful scientific engine must reject an attractive result when its prerequisite convergence fails. JX did exactly that in the subsequent 100,000-year IAS15 population test.\n\nThe matched no-source population converged, with 0.0295 AU disagreement. The middle compact-source population did not converge:\n\nThe governing result was `BLOCKED_SOURCE_POPULATION_NONCONVERGENCE`\n\n. The apparent source effect was therefore excluded from scientific use. This does not reject every compact-source model; it rejects an inference drawn from that nonconverged fifteen-trajectory population.\n\nThis failed gate is evidence that the claim controller is functioning as intended. The software passed its numerical foundation tests while refusing to convert an unstable model comparison into a Planet X claim.\n\nAfter downloading and verifying the release archive, run the core suite from the project root:\n\n```\nPYTHONPATH=src python3 -m jxplanetx.cli validate \\\n  --decimal-digits 80 --output runs/validation.json\n```\n\nTo reproduce the locked Yoshida benchmark:\n\n```\nPYTHONPATH=src python3 -m jxplanetx.cli reproduce-yoshida6 \\\n  --bundle-dir PATH_TO_VERIFIED_BUNDLE \\\n  --run-dir runs/yoshida6_reproduction \\\n  --output runs/yoshida6_reproduction.json\n```\n\nThe command should return a nonzero exit status when a required gate fails. The JSON run record preserves the configuration, gate results, evidence classification, environment, and source manifest.\n\nJX 0.1.0 is intentionally narrow. Readers should understand the following boundaries before using it:\n\n`acos`\n\n, use binary floating-point transcendental functions and are judged numerically rather than byte-for-byte.These limitations are part of the scientific record, not footnotes to be hidden.\n\nEvery published release should include:\n\nThe source-only archive hash associated with version 0.1.0 is:\n\n`9c478f9006d4a3aaa08676f4c61da291e9b961654ff5114b70907a5cc7d6b8c2`\n\nReaders must compare this value with the downloaded archive before treating it as the release discussed here.\n\nThe preserved complete JX research archive, including equations, tests, benchmark inputs, results, and reproduction instructions, has SHA-256:\n\n`286a6b834bb2df509b1ce0a83e21ac90112306a43ea98c997d2308c2be579fa8`\n\nThe source-only archive and complete research release are different artifacts and should be labeled separately on the public release page.\n\nThe public release is available from these permanent links:\n\nJX N-Body Engine 0.1.0 is released by Lino Avila and the JX Planet X project under the MIT License. Preserved third-party material retains its included licenses and notices. Modifications should preserve evidence labels, failed gates, unresolved blockers, and claim limits. Technical review is especially welcome on the Yoshida composition, independent Bulirsch-Stoer path, benchmark provenance, and the boundaries between numerical and observational evidence.\n\n*Editorial disclosure: This article was prepared with OpenAI Codex assistance under Lino Avila’s direction and reviewed against the preserved JX source code, tests, numerical results, and release checksums.*", "url": "https://wpnews.pro/news/jx-n-body-engine-0-1-0-arbitrary-precision-python-and-numerical-validation", "canonical_source": "https://dev.to/linomx90/jx-n-body-engine-010-arbitrary-precision-python-and-numerical-validation-g50", "published_at": "2026-08-21 04:45:15+00:00", "updated_at": "2026-08-21 05:14:03.173985+00:00", "lang": "en", "topics": ["developer-tools", "machine-learning", "artificial-intelligence"], "entities": ["Lino Avila", "JX Planet X project", "JX N-Body Engine", "REBOUND", "Yoshida", "Bulirsch-Stoer", "DE441"], "alternates": {"html": "https://wpnews.pro/news/jx-n-body-engine-0-1-0-arbitrary-precision-python-and-numerical-validation", "markdown": "https://wpnews.pro/news/jx-n-body-engine-0-1-0-arbitrary-precision-python-and-numerical-validation.md", "text": "https://wpnews.pro/news/jx-n-body-engine-0-1-0-arbitrary-precision-python-and-numerical-validation.txt", "jsonld": "https://wpnews.pro/news/jx-n-body-engine-0-1-0-arbitrary-precision-python-and-numerical-validation.jsonld"}}