Directional leakage, oscillation, and jitter during nudging #42

Open
opened 2025-01-31 19:39:29 +00:00 by glen · 2 comments
Owner

The nudging commands, to a mild extent, can cause unnecessary and unexpected motions. For example:

  • When you nudge in a specific direction, the motion can leak into other directions.
  • While nudging continuously, parameters can gradually oscillate in a way that probably doesn't reflect the idealized desired motion.
  • While nudging continuously, parameters can jitter from step to step.

These sorts of behaviors aren't necessarily bugs, but they're also not ideal. In a recent meeting, we discussed potential nudging system adjustments that might ameliorate them. Issues outlining those approaches should link to this issue (but not replace it, as this issue is observational and those issues will be tactical).

Reproduction

Here are some procedures we've been using to demonstrate these unnecessary motions.

Leakage

Tested on commit 817a446

  1. Select Deimos and then focus the display
  2. Press and hold W and watch the third coordinate of Deimos
    • Since Deimos is unconstrained, the nudge you're doing should change the second coordinate while keeping the third coordinate constant. However, the third coordinate drifts slowly while also jittering a bit.

When I reduce the constant TRANSLATION_SPEED in display.rs from 0.15 to 0.01, the drift rate of the third coordinate (per unit change in the second coordinate) is much smaller.

Oscillation

Tested on commit 817a446

  1. Set the Lorentz product between Deimos and Pollux to 1
  2. Select Deimos and then focus the display
  3. Press and hold W and watch the fourth coordinate of Deimos
    • After reaching the low 20s, the fourth coordinate turns around and starts shrinking again.

As evidence that this behavior doesn't reflect the idealized desired motion, try reducing TRANSLATION_SPEED from 0.15 to 0.05 to 0.01. This causes the turnaround in the fourth coordinate to happen later: I've seen it happen around the 100s at speed 0.05, and in the 60s at speed 0.01.

Jitter

Tested on commit 817a446

  1. Set the Lorentz product between Deimos and Pollux to 1
  2. Select Deimos and then focus the display
  3. Press and hold W and watch the fourth coordinate of Deimos
  4. Wait for the fourth coordinate to turn around and start shrinking again, as described above.
  5. When the fourth coordinate is descending through 10 to 12 range, start tapping W instead of holding it
    • Sometimes, a tap makes the fourth coordinate go slightly up instead of down.
The nudging commands, to a mild extent, can cause unnecessary and unexpected motions. For example: - When you nudge in a specific direction, the motion can leak into other directions. - While nudging continuously, parameters can gradually oscillate in a way that probably doesn't reflect the idealized desired motion. - While nudging continuously, parameters can jitter from step to step. These sorts of behaviors aren't necessarily bugs, but they're also not ideal. In a recent meeting, we discussed potential nudging system adjustments that might ameliorate them. Issues outlining those approaches should link to this issue (but not replace it, as this issue is observational and those issues will be tactical). ## Reproduction Here are some procedures we've been using to demonstrate these unnecessary motions. ### Leakage Tested on commit 817a446 1. Select Deimos and then focus the display 2. Press and hold **W** and watch the third coordinate of Deimos * *Since Deimos is unconstrained, the nudge you're doing should change the second coordinate while keeping the third coordinate constant. However, the third coordinate drifts slowly while also jittering a bit.* When I reduce the constant `TRANSLATION_SPEED` in `display.rs` from 0.15 to 0.01, the drift rate of the third coordinate (per unit change in the second coordinate) is much smaller. ### Oscillation Tested on commit 817a446 1. Set the Lorentz product between Deimos and Pollux to 1 2. Select Deimos and then focus the display 3. Press and hold **W** and watch the fourth coordinate of Deimos * *After reaching the low 20s, the fourth coordinate turns around and starts shrinking again.* As evidence that this behavior doesn't reflect the idealized desired motion, try reducing `TRANSLATION_SPEED` from 0.15 to 0.05 to 0.01. This causes the turnaround in the fourth coordinate to happen later: I've seen it happen around the 100s at speed 0.05, and in the 60s at speed 0.01. ### Jitter Tested on commit 817a446 1. Set the Lorentz product between Deimos and Pollux to 1 2. Select Deimos and then focus the display 3. Press and hold **W** and watch the fourth coordinate of Deimos 4. Wait for the fourth coordinate to turn around and start shrinking again, as described above. 5. When the fourth coordinate is descending through 10 to 12 range, start tapping **W** instead of holding it * *Sometimes, a tap makes the fourth coordinate go slightly up instead of down.*
Collaborator

Thanks for filing this! I've reorganized and reworded it a bit. In particular, I switched from "oscillation" to "jitter" to emphasize that the motions we're talking about are very fast—on the order of single nudging steps.

Thanks for filing this! I've reorganized and reworded it a bit. In particular, I switched from "oscillation" to "jitter" to emphasize that the motions we're talking about are very fast—on the order of single nudging steps.
Vectornaut changed title from "Directional leakage"/oscillation in "nudging" to Directional leakage and jitter during nudging 2025-01-31 19:51:10 +00:00
Vectornaut changed title from Directional leakage and jitter during nudging to Directional leakage, oscillation, and jitter during nudging 2025-02-04 22:44:58 +00:00
Collaborator

I've edited to add reproduction procedures from this comment, and to bring oscillation back into the issue. Playing with the alternate normalization branch suggests that oscillation is a separate phenomenon happening alongside jitter.

I've edited to add reproduction procedures from [this comment](pulls/34#issuecomment-2010), and to bring oscillation back into the issue. Playing with the alternate normalization branch suggests that oscillation is a separate phenomenon happening alongside jitter.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: glen/dyna3#42
No description provided.