Skip to content

Brownian motion #2498

Description

@denisdamata

From what I can see, vis-network does not currently support Brownian motion (randomness/noise) for graph nodes. The physics engine appears to be a closed system, making it difficult to implement this feature externally.

While it's possible to add superficial randomness by manually updating node positions, this approach ignores particle interactions and causes nodes to overlap. It's also physically irrelevant, as the motion doesn't respect the constraints and forces defined in the system.

Brownian motion acts as a temperature-like parameter. It introduces controlled disorder that:

  • Prevents the system from getting stuck in fake local minima.
  • Allows the network to explore configuration space and access lower-energy states.
  • Results in a more organized and aesthetically pleasing visual layout over time.
  • It keeps the graph constantly in motion, which makes it feel more alive and dynamic.

It would be great to have an official option (e.g., physics.brownianMotion: true or physics.noiseIntensity: 0.5) that integrates random displacement directly into the physics iteration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions