Immersive Blogs

Publications about innovation and new functionality.
Live Force-Directed Service Graphs: Physics-Based Topology That Settles Itself

Live Force-Directed Service Graphs: Physics-Based Topology That Settles Itself

Dan Kowalski - 2026-04-21

Most observability tools give you a service map. A box-and-arrow diagram. Static nodes, static edges, maybe a zoom control and a search bar. You arrange the layout yourself, or the tool arranges it once and never updates.

That's not a topology. That's a screenshot.

Your system is alive. Services spin up and shut down. Traffic shifts between pathways. Congestion builds on one edge while another goes quiet. A topology visualization should reflect that reality in real time, without anyone dragging boxes around.

That's what IAPM's force-directed service graph does. It's shipped. It's live. And it works the way physics works.

Your service topology, alive in 3D

What "Force-Directed" Actually Means

A force-directed graph is a layout algorithm that treats nodes as charged particles and edges as springs. Nodes that share connections are pulled together. Nodes that don't share connections repel each other. The system runs a physics simulation until it reaches equilibrium, and the layout "settles" into a shape that reflects the actual structure of your system.

This isn't new computer science. Force-directed layouts have existed since the 1960s (Tutte's barycentric method) and were formalized by Fruchterman and Reingold in 1991. What is new is applying this to a live service dependency graph in a 3D rendering engine, with real OpenTelemetry trace data driving the forces in real time.

In IAPM, the physics simulation runs continuously. Every incoming trace updates the graph. When a service starts receiving more traffic, its edges pull tighter, drawing it closer to its dependencies. When traffic subsides, the springs relax and the node drifts outward. The topology is always current because the physics never stops.

Spring Forces and Connection Weight

Each edge in the graph behaves as a spring. The spring constant is proportional to the volume of requests flowing between two services. High-traffic connections produce strong springs, pulling tightly connected services close together. Low-traffic connections produce weak springs, allowing loosely coupled services to drift apart.

The result: your service clusters emerge naturally. The checkout flow groups itself. The authentication services cluster together. The background job processors float to the periphery. You don't configure this. You don't drag anything. The topology reveals itself because the physics reflect the actual communication patterns in your telemetry data.

This matters because microservice architectures change constantly. New services deploy. Old services get decommissioned. Traffic patterns shift with every feature release. A static layout requires manual intervention every time the architecture changes. A physics-based layout adapts automatically, because the simulation responds to whatever the telemetry shows right now.

Edge Congestion Is Visible

Request volume between two services isn't just a number in a tooltip. In IAPM, edge thickness encodes congestion. High-throughput connections render as thick, prominent pathways. Low-throughput connections render as thin lines.

You can see, at a glance, where the traffic is. Which service-to-service connections are hot. Where the bottlenecks are forming. You don't need to click each edge and read a number. The visual encoding does the work.

This is the same principle that makes a highway traffic map useful. You don't read the speed of every road segment. You look for the red lines. IAPM's edge thickness gives you the same instant visual read on your distributed system.

Traffic patterns you can see, not just query

Pulse Direction Shows Data Flow

Edges aren't just lines. They carry animated pulses that show the direction of data flow. When service A calls service B, the pulse travels from A to B along the edge. When both services call each other, pulses travel in both directions.

This makes it immediately obvious how requests propagate through your system. Follow the pulses from the API gateway inward and you see the request fan out across downstream services. Watch a notification service and you see pulses arriving from multiple upstream callers. The animation turns a static dependency diagram into a living map of how your system actually communicates.

For incident response, pulse direction is invaluable. When a service starts failing, you can visually trace the blast radius by following the pulses downstream from the failing node. No query required. No mental model of the architecture needed. The graph shows you.

Idle Services Fade

Not every service is active all the time. Batch processors run on schedules. Feature-flagged services go dormant. Staging environments have services that receive traffic only during deploy windows.

In a static service map, idle services clutter the view. They take up the same visual space as active services, forcing you to mentally filter them out. In IAPM, idle services fade. Their nodes become translucent. Their edges dim. They're still there (you can still select them, inspect them, query them), but they don't compete for your visual attention.

This is idle pruning: the graph emphasizes what matters right now. During a production incident at 2 AM, you don't need to see the reporting service that runs at 6 AM. It fades to the background, and the services that are actively processing (and potentially failing) stay prominent.

When the idle service receives traffic again, it re-emerges. The physics simulation pulls it back into position, the node regains opacity, and the edges thicken. No configuration. No threshold tuning. The visualization tracks the telemetry automatically.

Why 3D Matters for Topology

Two-dimensional service maps hit a wall at scale. With 20 services, a 2D layout is manageable. With 200 services and thousands of edges, a 2D layout becomes an unreadable tangle of overlapping lines and cramped labels. This is why most topology tools add search, filter, and manual grouping controls: they're working around the fundamental limitation that 2D space can't accommodate dense graphs without occlusion.

Three dimensions solve this geometrically. The same graph that's a tangled mess in 2D can spread cleanly into 3D space, because there's an entire additional axis available to separate clusters that would overlap in a flat projection. The force-directed simulation takes advantage of all three axes, so services that are architecturally distinct (but would overlap in 2D) separate cleanly in depth.

IAPM renders the graph in Unity, the same engine used for AAA video games. You navigate the topology the way you'd navigate a 3D environment: orbit, pan, zoom. Select a node and its connections highlight. Fly into a cluster to inspect a subset of services. Pull back to see the full system. The interaction model is spatial, not spreadsheet-based.

OpenTelemetry Native

The service graph is built entirely from OpenTelemetry trace data. IAPM reads service.name from resource attributes, extracts parent-child relationships from span links, and derives the topology from actual request flow. There's no agent to install on each service. No proprietary SDK. No service mesh required.

If your application emits OTLP traces (and any OpenTelemetry SDK does), IAPM builds the graph automatically. Add a new service, instrument it with OTel, and it appears in the topology within seconds. The physics simulation places it based on its communication patterns. No configuration file. No manual registration.

This also means the graph works with any language, any framework, and any cloud provider. Go, .NET, Java, Python, Node.js: if the OTel SDK supports it, the graph renders it. The topology reflects your real architecture, not a model you maintain separately.

Built on OpenTelemetry. No proprietary agents.

What Other Tools Do Instead

Most observability platforms offer some form of service map. The typical implementation is a 2D directed graph rendered in SVG or Canvas, with manual zoom and pan controls. Nodes are placed using a static layout algorithm (often hierarchical or grid-based), and the layout is computed once when you open the view. Some tools let you drag nodes to rearrange them. Some auto-group by namespace or cluster.

None of them run a continuous physics simulation. None of them encode congestion as edge thickness in real time. None of them animate pulse direction. None of them fade idle services automatically. And none of them operate in 3D, which means they all hit the same scaling wall when your architecture exceeds a few dozen services.

The most advanced static maps offer topology "snapshots" that you can compare across time windows. That's useful for historical analysis, but it doesn't help during a live incident when you need to see what's happening right now. A physics simulation that updates with every incoming trace is fundamentally different from a layout that was computed when you loaded the page.

See It for Yourself

The best way to experience a force-directed service graph is with a rich, realistic topology. Our open-source trace generator produces exactly that: a single Go binary that simulates 28 services (20 traditional + 8 AI) generating 40 scenario flows. No Docker. No infrastructure. Just install and run.

go install github.com/ImmersiveFusion/if-opentelemetry-tracegen/cmd/tracegen@latest
tracegen -endpoint otlp.iapm.app:443 -headers "api-key=YOUR_KEY" -complexity light

Within seconds, the force-directed graph populates with a full microservice architecture. Checkout flows, payment processing, recommendation engines, AI agents, notification fan-outs. The physics simulation places each service based on its communication patterns. Clusters form. Edges thicken on high-traffic paths. Pulses animate the data flow. Idle services fade to the background.

The trace generator supports three complexity modes (-complexity light, normal, or heavy), load intensity from 1-10 (-level), and configurable error injection (-errors). Start with a clean topology and ramp up:

tracegen -complexity light -level 1 -insecure          # minimal services, local collector
tracegen -complexity heavy -level 5 -insecure          # full topology with AI scenarios
tracegen -ai-only -insecure                            # agentic scenarios only

The physics adapts at every level. Light mode gives you a clean, readable graph. Heavy mode with high load shows how the force-directed layout handles real-world density: hundreds of edges, concurrent traffic across every pathway, AI agent fan-outs creating visible clusters.

For failure scenarios, our chaos simulator adds configurable failure injection on top. Inject a latency spike into one service and watch the edges thicken as retries pile up. Kill a downstream dependency and watch the topology reshape as traffic reroutes. Scale a service to zero replicas and watch its node fade as it goes idle.

For a zero-setup experience, visit demo.iapm.app. The demo environment runs continuous traffic through a multi-service architecture, and the force-directed graph is live. Orbit around it. Zoom into a cluster. Watch the pulses flow. This is what your production topology could look like.

Both tools send traces to any OTLP endpoint. Point them at IAPM to see the 3D force-directed graph, or point them at Jaeger, Tempo, Honeycomb, or Datadog to compare how other tools render the same topology.

Try It

IAPM's force-directed service graph is available today on all tiers, including Start (free).

  1. Start Free and grab your API key
  2. Run the trace generator for an instant 28-service topology
  3. Open the 3D view and watch your topology settle itself
  4. Or instrument your own services with any OpenTelemetry SDK and see your real architecture come alive

No manual layout. No static screenshots. No box-and-arrow diagrams that go stale the moment you deploy. Just your system, rendered as a living, physics-driven topology that shows you what's happening right now.

Enter the World of Your Application®

Start Free. Immersive. AI-guided. Full-stack observability. Enter the World of Your Application®.

Dan Kowalski

Father, technology aficionado, gamer, Gridmaster

About Immersive Fusion

Immersive Fusion (immersivefusion.com) is pioneering the next generation of observability by merging spatial computing and AI to make complex systems intuitive, interactive, and intelligent. As the creators of IAPM, we deliver solutions that combine web, 3D/VR, and AI technologies, empowering teams to visualize and troubleshoot their applications in entirely new ways. This approach enables rapid root-cause analysis, reduces downtime, and drives higher productivity—transforming observability from static dashboards into an immersive, intelligent experience. Learn more about or join Immersive Fusion on LinkedIn, Mastodon, X, YouTube, Facebook, Instagram, GitHub, Discord.

The Better Way to Monitor and Manage Your Software

Streamlined Setup

Simple integration

Cloud-native and open source friendly

Rapid Root Cause Analysis

Intuitive tooling

Find answers in a single glance. Know the health of your application

AI Powered

AI Assistant by your side

Unlock the power of AI for assistance and resolution

Intuitive Solutions

Conventional and Immersive

Expert tools for every user:
DevOps, SRE, Infra, Education

The Better Way to Monitor and Manage Your Software

A fusion of real-time data, immersive diagnostics, and AI Assistant that accelerate resolution.

Start Free