This commit perfects the visual authenticity of the soroban abacus by implementing
proper spacing between beads that matches how a real abacus behaves.
Key improvements:
1. Adjacent Bead Spacing System:
- Adjacent beads of same type (active-to-active, inactive-to-inactive): 0.5pt spacing (nearly touching)
- Transition gaps (active-to-inactive): 8pt spacing (clear visual separation)
- Bar-to-bead gaps: 1pt (active) or 8pt (inactive) as appropriate
2. Physical Abacus Authenticity:
- Active beads cluster together near the reckoning bar
- Inactive beads cluster together away from active beads
- Clear visual distinction between active and inactive states
- Matches the tactile grouping behavior of real soroban beads
3. Enhanced Visual Impact:
- Numbers like 2,3,4: Active earth beads touch each other
- Numbers like 6,7,8,9: Both active and inactive groups clearly defined
- Number 0: All inactive beads form cohesive groups
- Number 5: Clean separation between active heaven and inactive earth
Technical Implementation:
- New adjacent-spacing parameter (0.5pt) for same-type bead pairs
- Updated positioning calculations throughout earth bead logic
- Maintained rod bounds calculation compatibility
- Preserved all existing gap logic for different-type transitions
The result is a much more authentic and visually appealing representation that
accurately reflects how beads behave on a physical soroban abacus.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>