This repository takes one geometric idea seriously and then narrows it until only auditable claims remain.
The starting idea comes from Arjen Dijksman's Rotating Vector Model: maybe inertia-like resistance does not need to be assumed as a primitive property, but can instead emerge mechanically from collisions between massless rotating line segments. This repository does not claim that the idea has been proved as a theory of mass. It asks a smaller question and answers it carefully: in the exact collision geometry described by the source note, is there a clean threshold where contact changes from instantaneous to sustained gliding, and does the current source set justify saying that the effect survives outside that special case?
The strongest supported answer is narrow and clear. Inside one four-constraint special case, the threshold
omega_0 = pi c / L
is supported analytically and reproduced deterministically in code and fixed result files. Outside that special case, the current source set does not yet support a deterministic yes-or-no generalization claim. That is the point of this repository: not to make the idea sound larger, but to show exactly what survives careful reconstruction.
The repository's primary source is dijksman_rvm_revised.md, which preserves the physical content of the original note while correcting its claim boundaries. That revised note cites Arjen's original materion.free.fr page at http://materion.free.fr/OldVersion/physique/reconsider.htm, and thread.md preserves part of the public citation trail around the broader materion / RVM idea.
In plain language, the original conjecture is:
- A fundamental particle can be modeled as a massless line segment of fixed length
Lrotating about its center. - In one specially arranged two-particle collision, a fast enough rotating segment can keep contact with another segment for a nonzero time instead of just touching and separating instantly.
- That sustained gliding contact produces resistance to translational motion that is structurally analogous to inertia.
- If that mechanism survived beyond the exact special geometry, and if many such collisions were accumulated statistically, it might point toward a mechanical origin of inertia and eventually toward a mass-like interpretation.
That last step is the conjectural leap. The original idea is interesting because it tries to move from geometry to inertia. It becomes difficult because each step after the special case requires new derivations that the source note does not yet supply.
The repository keeps the intuition but tightens the logic.
What was broadened in the original intuition:
- a special-case collision result was allowed to suggest a more general mechanical mechanism
- gliding contact was treated as if it were already close to an inertia law
- the path from collision geometry to mass-like behavior was left open-ended
What is refined here:
- the source note is rewritten as a scoped, corrected technical statement in
dijksman_rvm_revised.md - the exact claim surface is locked in
claims.md - the basic objects, symbols, and operational terms are fixed in
definitions.md - the special-case threshold is derived explicitly in
special_case_derivation.md - a deterministic special-case instrument is implemented in
scripts/special_case_experiment.py - one-at-a-time perturbation tests are defined and executed without pretending that unsupported formulas transfer automatically
- the project stops at the point where the source support runs out
The practical difference is simple: the original idea was "this may be a mechanical route to inertia." The refined result in this repository is "one constrained collision mechanism survives careful reconstruction; broader claims remain open."
Within the following four simultaneous constraints,
omega_CD = 0- segment
ABrotates in a plane perpendicular toCD - initial contact occurs at the geometric centers
- the translational approach of
CDis perpendicular toABat contact
the repository supports a clean threshold law:
omega_0 = pi c / L
That threshold separates three regimes:
| Condition | Supported regime |
|---|---|
omega < omega_0 |
instantaneous contact |
omega = omega_0 |
critical recollision at the tip |
omega > omega_0 |
interior re-encounter consistent with non-instantaneous gliding onset |
This is an existence result inside the constrained geometry only.
The repository does not claim:
- a closed-form law for
tau_contact - a demonstrated generalization beyond the special case
- an ensemble inertia law
- a derivation of mass or
E = mc^2
The repository is organized as a small research pipeline.
claims.md extracts what the source note actually claims, what it merely hypothesizes, and what it explicitly does not claim. This prevents later code and figures from sounding stronger than the source support allows.
definitions.md then fixes the objects and terms used everywhere else: segment length L, separation speed c, angular speed omega, the threshold omega_0, the three regime labels, and the meaning of tau_contact.
special_case_derivation.md turns the special-case picture into explicit timing comparisons. The key comparison is between
t_rot = pi / (2 omega)
t_clear = L / (2 c)
and that is what yields the threshold omega_0 = pi c / L.
The derivation also defines the kinematic diagnostics used later:
Delta t = t_clear - t_rot
s_re = pi c / (2 omega)
ell_rem = L / 2 - s_re
These are threshold-crossing diagnostics. They are not silently rebranded as a duration law.
scripts/special_case_experiment.py is a narrow deterministic instrument for the constrained geometry. It runs with no command-line arguments and evaluates the canonical threshold-spanning default case:
omega values = (1, pi/2, 2)
L = 2
c = 1
It writes a fixed CSV schema with columns such as:
omegaomega_0omega_ratiov_tipt_rott_cleardelta_ts_reell_remfirst_reencounter_locationgliding_contact_occurstau_contact_supported
The methods contract for that script is documented in methods/special_case_experiment.md.
The core evidence files are:
results/special_case_threshold.csvresults/special_case_scaling.csvresults/special_case_summary.mdfigures/special_case_threshold.pngfigures/special_case_scaling.png
These show that the threshold transition is reproducible and that the supported kinematic diagnostics vary smoothly above threshold.
The original note named four ways the special case could fail to generalize. This repository turns those into a bounded perturbation program in methods/perturbation_tests.md:
- nonzero
omega_CD - non-perpendicular collision plane
- off-center contact
- oblique approach angle
Each family keeps a zero-perturbation control row set and varies only one parameter at a time. The repository then records the family-level result in:
results/perturbation_cd_rotation.csvresults/perturbation_plane_tilt.csvresults/perturbation_contact_offset.csvresults/perturbation_approach_angle.csvgeneralization_assessment.md
The result is not "generalization succeeded" and not "generalization failed." The correct result is "nonzero perturbation families remain ambiguous under the current source set because the necessary family-specific post-recollision contact laws are missing."
A supplemental note now sharpens the approach-angle family at the onset level. approach_angle_onset_derivation.md derives a family-specific threshold for first interior re-encounter under oblique approach while keeping the other three special-case constraints fixed. That note does not derive tau_contact or rewrite the repository's final stop condition. It documents a deterministic onset law only.
This figure visualizes the central special-case transition. Negative ell_rem values mean the first possible re-encounter lies beyond the available half-length of AB, so no interior re-encounter is supported. Zero is the tip case. Positive values move the first re-encounter into the interior, which is the supported onset of non-instantaneous gliding contact.
This figure is intentionally modest in what it claims. It shows that once the system is above threshold, the available kinematic diagnostics change smoothly with omega / omega_0. It does not plot tau_contact, because the repository does not derive that quantity from the current source set.
The bottom control row reproduces the special-case transition: no supported gliding below threshold, the threshold anchor at omega / omega_0 = 1, and supported gliding above threshold. Every nonzero omega_CD / omega row remains ambiguous because the source set does not provide a family-specific gliding/contact law for rotating CD.
This plot asks whether the effect survives once the collision plane is no longer exactly perpendicular. The control row still behaves like the special case. Every nonzero tilt row stays ambiguous for the same reason: no perturbed-geometry closure law is available.
This plot tests whether the phenomenon survives once the collision is no longer center-on-center. Again, the control row is intact and every nonzero row remains ambiguous under the current source set.
This plot tests oblique approach rather than perpendicular approach. It closes the same way as the other perturbation families: special-case control retained, nonzero rows unresolved.
If you want the fastest route through the repository, read these in order:
README.mdPROJECT_STATUS.mdtechnical_note.mddijksman_rvm_revised.mdspecial_case_derivation.mdapproach_angle_onset_derivation.mdresults/special_case_summary.mdgeneralization_assessment.mdinterpretation_limits.md
The evidence-bearing core of the repo is:
dijksman_rvm_revised.mdclaims.mddefinitions.mdspecial_case_derivation.mdmethods/special_case_experiment.mdmethods/perturbation_tests.mdresults/figures/generalization_assessment.mdinterpretation_limits.mdtechnical_note.md
Historical or exploratory materials are kept for provenance, but they should not be read as the bounded final conclusion without checking them against the claim controls above. That includes items such as:
The core special-case instrument runs with no arguments:
python3 scripts/special_case_experiment.pyThat command prints the canonical threshold-spanning CSV rows to stdout.
The perturbation plotting scripts also support no-argument execution with their canonical defaults:
python3 scripts/plot_perturbation_cd_rotation.py
python3 scripts/plot_perturbation_plane_tilt.py
python3 scripts/plot_perturbation_contact_offset.py
python3 scripts/plot_perturbation_approach_angle.pyThe next steps are not "make the theory bigger." They are the smallest steps required to justify any stronger statement.
-
Derive a post-recollision contact law for the special case. Without that,
tau_contactis still not a supported numeric quantity. -
Resolve at least one nonzero perturbation family with a family-specific law. A single deterministic persistence or disappearance result would move the project past the current
ambiguousboundary. -
Re-evaluate the perturbation families one by one. The point is to learn whether the special-case mechanism is representative or geometrically fragile.
-
Open the ensemble layer only if perturbation support exists. A many-collision inertia interpretation is downstream of, not prior to, the geometry question.
-
Test any later scaling proposal against the note's explicit non-claims. No later work should smuggle in "mass," "
omegaequals mass," or "E = mc^2" language without a separate derivation.
The value here is not that it proves a sweeping theory. The value is that it converts a broad and interesting intuition into a small set of statements that can be defended line by line:
- what the constrained geometry supports
- what the deterministic computations reproduce
- what the perturbation suite does and does not decide
- where the project must stop to avoid overclaiming
That makes the repository useful even if the larger theory never closes. It is a worked example of taking a speculative physical idea, extracting its strongest testable core, and keeping only what survives.






