Mass
Composition
Read package hierarchy and code mass through Sunburst, Treemap, or Circle Pack. Area follows the selected size measure and starts with lines of code.
Composition shows where the code lives in the package or source-folder hierarchy. It starts in Sunburst with lines of code as the size measure, neutral depth colour, and Heatmap off. Area shows mass; containment shows hierarchy. Dependency direction belongs to Topology and Matrix.
This read is useful before significant refactoring. The area that feels central in day-to-day work may be small, while an overlooked utility branch carries much more code than its name suggests. Composition makes that imbalance visible before you choose a boundary to move or split.
Double-click an area to make it Current Focus and use the breadcrumb to move back through the hierarchy. Right-click when you want to navigate to the corresponding source in the IDE. Sunburst, Treemap, and Circle Pack answer the same composition question with different geometry; each makes a different comparison easier.
Sunburst
Sunburst is the initial depth read. Inner arcs sit closer to Current Focus; outer arcs are deeper descendants. It exposes branch shape and nested structure while still showing how much mass each branch owns.
Double-click an arc to change Current Focus. Click the centre or empty area to select the current root. Use Sunburst when you need to explain how an area is nested before discussing how large it is.
Treemap
Treemap is the proportional read. Rectangles make it easy to compare how much code mass lives in one branch versus another. It opens in Adaptive, which selects a useful frontier through the hierarchy.
Its three visible projections answer different depth questions:
- Focus shows the direct child areas beneath the current Composition focus without changing Current Focus.
- Adaptive balances breadth and depth to keep the most useful hierarchy frontier visible.
- Full System shows the complete recursive hierarchy beneath the current Composition focus. It does not reset the lens to the whole project.
Keep the Current Focus, size measure, and viewport constant across these three shots. The comparison should show that the projection changes while the underlying composition question does not.
At a terminal JVM package, Treemap can enter a contained class-detail read when you need to see which types own that package's mass. That is implementation detail inside the package, not a new architecture level across the other lenses.
Circle Pack
Circle Pack is the cluster read. Nested circles make containment easy to perceive when you are scanning for families of related areas rather than comparing rectangular sizes.
Use it as a second read when Treemap feels too rectilinear or Sunburst makes sibling comparison awkward. It remains a Composition renderer, not a dependency graph or a sixth lens.
Size and Heatmap
Area follows the selected size measure; lines of code is the initial choice. Changing size asks a new composition question without inventing dependency meaning. A large region owns more of the selected measure, not automatically more architectural risk.
Heatmap adds a compatible metric as colour while area continues to show mass. With Heatmap off, colour is neutral hierarchy depth. With Heatmap on, the named metric owns the colour scale. That distinction keeps “large” and “under pressure” from collapsing into the same claim.
What carries into other lenses
Changing Current Focus carries across the shared investigation. A compatible Heatmap selection can carry among Topology, Matrix, and Composition. Renderer, size measure, and Treemap projection remain local to Composition, so another lens does not inherit a hierarchy-rendering choice it cannot use.
Take the composition read with you
Snapshot as PNG captures the active Sunburst, Treemap, or Circle Pack. Composition does not turn the rendered hierarchy into Matrix data or DOT topology; an Architecture Report remains a separately assembled model-driven product.
When a composition read is unavailable
AtlasArc distinguishes no analysis model, no architectural units, and a Current Focus or filter that leaves no eligible areas. It names the condition and offers the corresponding analysis, source, breadcrumb, or reset action. If a selected size or Heatmap metric is unavailable for the current evidence, AtlasArc explains that boundary instead of substituting zero and changing the meaning of the chart.