RCSVisualsInstanced.applyForce treats a thruster as visible with Math.abs(magnitude) > 0.01 and scales from |F|.
applyForces writes the same local thrusterVisibility using abs, then calls ThrusterInstanceManager.updateSpacecraftThrusters, which uses force > 0.01 (no abs) and force / 10000 for scale.
So applyForce(i, -5000) lights the instance (scale 0.85) while applyForces([-5000, …]) leaves it hidden. Any controller that issues signed RCS commands will see exhaust only on the per-thruster path.
Pinned by rcs-visuals-instanced.spec.ts ("does not light negatives (unlike applyForce)").
`RCSVisualsInstanced.applyForce` treats a thruster as visible with `Math.abs(magnitude) > 0.01` and scales from `|F|`.
`applyForces` writes the same local `thrusterVisibility` using abs, then calls `ThrusterInstanceManager.updateSpacecraftThrusters`, which uses `force > 0.01` (no abs) and `force / 10000` for scale.
So `applyForce(i, -5000)` lights the instance (scale 0.85) while `applyForces([-5000, …])` leaves it hidden. Any controller that issues signed RCS commands will see exhaust only on the per-thruster path.
Pinned by `rcs-visuals-instanced.spec.ts` ("does not light negatives (unlike applyForce)").
```ts
// applyForce
const isVisible = absMagnitude > 0.01;
const scale = isVisible ? Math.min(absMagnitude / 10000, 1) * 1.5 + 0.1 : 0;
// ThrusterInstanceManager.updateSpacecraftThrusters
const visible = force > 0.01;
const scale = visible ? Math.min(force / 10000, 1) * 1.5 + 0.1 : 0;
```
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
RCSVisualsInstanced.applyForcetreats a thruster as visible withMath.abs(magnitude) > 0.01and scales from|F|.applyForceswrites the same localthrusterVisibilityusing abs, then callsThrusterInstanceManager.updateSpacecraftThrusters, which usesforce > 0.01(no abs) andforce / 10000for scale.So
applyForce(i, -5000)lights the instance (scale 0.85) whileapplyForces([-5000, …])leaves it hidden. Any controller that issues signed RCS commands will see exhaust only on the per-thruster path.Pinned by
rcs-visuals-instanced.spec.ts("does not light negatives (unlike applyForce)").Already on
master. applyForces already sends Math.abs magnitudes to ThrusterInstanceManager, so negative RCS lights like applyForce. Closing.