Network analysis tool

The network analysis tool shown on a laptop, with the canvas and the network overview panel
Timeframe
3 months
Client
Independent client
Services
Competitive analysis, UX Design, UI Design
UI Kit
Mantine
Project overview

Long story short: I was the sole UX designer on a network analysis tool that existed as a proof of concept with no interface. I asked what an analyst is holding in mind when they open a graph tool, and the answer moved the product off the structure I had given it.

The client, a developer, had built the analysis engine, and the interface did not exist yet. The brief opened with a suggestion, a panel modelled on Figma and Photoshop with a layer system underneath, and it invited other ideas. The question underneath that suggestion stayed open: which idea sits at the top of the screen.

The same interface has to serve two very different people. One is mapping how a team works together. The other is tuning the physics of a force-directed layout. Whichever idea the interface puts at the top level decides how much work each of them does to reach what they came for.

Three decisions followed. I drew the prevailing convention first and established where it breaks. I moved objects above actions. I collapsed two overlapping concepts into one, so every route through the tool now ends in the same object.

The problem

Graph analysis asks people to choose between analytical power and being able to use the software at all.

Scientists, researchers, analysts and data engineers make up the audience, and the available software divides along precisely the line between reading data and writing code.

Cytoscape and Gephi hold the deepest analysis, and both run as Java desktop applications whose interfaces were built for specialists. Sigma.js is a rendering library rather than a product, so a development team has to build an interface around it before an analyst sees anything. Cosmograph draws very large networks quickly in a browser, with the layout running on the GPU. Its strength is speed at scale rather than the depth of graph theory Cytoscape and Gephi carry. KeyLines and Polinode are commercial products, the first a toolkit a development team builds with, the second a subscription platform. The brief describes both as prohibitively expensive.

The client supplied a comparative study of the six tools, covering features and architecture. Research of that kind describes what already exists rather than what to build, so I worked through it and rebuilt it as a set of constraints the design could be measured against: for each tool, one strength worth carrying in and one weakness worth keeping out.

ToolCarry overKeep out
CytoscapeAttribute-based styling, a flexible panel layout, several networks at onceA steep learning curve behind a complex interface
GephiReal-time interaction, intuitive filters, an overview kept separate from the previewMemory limits and constant mode switching
Sigma.jsFast rendering in the browser, deep customisationA developer-only surface with no analytics built in
CosmographA clean interface, histogram filtering, GPU layoutsThin analysis and the absence of customisation in the interface
KeyLinesEnterprise-grade interaction, combined nodes, timeline and map viewsA closed platform that needs a developer, and feature overload
PolinodeApproachable onboarding, built-in metrics, collaborationLimited extensibility, no scripting access, performance ceilings

Four entries in the table can be traced into the final screens. Cytoscape’s attribute-based styling became a rule builder that selects on type, department and centrality. Gephi’s separation of the overview from the preview became a network summary that sits beside the canvas rather than replacing it. Polinode’s built-in metrics became a metrics block carried by every selection. I designed out Gephi’s mode switching by giving the interface a single panel that changes with the selection, rather than a mode for each task.

One pattern came out of the comparison. The four that ship a finished interface each put a different idea at its top level: some lead with modes, some with types of setting, some with the data itself. Each of those answers sends its users down a different number of steps to reach the same result.

The brief raised the stakes further. The design had to serve as the foundation for a first build and still hold years later, as features arrived that had not been specified yet.

Approach and decisions

Every decision came back to the same question. What is the analyst looking at, and does the interface have it at the top?

Drawing the convention before arguing with it

Analytics tools mostly lead with actions, and Polinode is the clearest example of the pattern. Colour, size and labels each get a screen of their own, and the arrangement is defensible, since one screen handles one kind of setting and the interface stays modular. I drew that version first. The fastest way to find the limit of a convention is to build it and then look for the case it cannot hold.

My first exploration gave each action its own screen. Labels, Layers, Metrics, Colour, Size, Filter and Shapes ran down the left, among the file and view commands. Each screen opened a panel with nodes, edges and the whole network as tabs along the bottom.

The case arrived quickly. Action-first works while a change applies to everything at once, and it breaks the moment an analyst is working with one group of people rather than the whole network. Making every influencer larger, darker and labelled means opening four separate screens, one to find them and three to style them, and stating the same criteria in each.

We talked the structure through, and the argument for inverting it is the clearest statement of the problem the project turned on.

“Users will want to focus on certain types of nodes, edges, groups, or paths first (the ‘objects’ of the design) because they are directly related to the subject matter they are trying to understand. Styling is secondary and intended to help them identify and focus on relationships and patterns.”

I moved objects to the top level. The brief had offered Figma’s panel as a starting suggestion, and the exploration is what turned that suggestion into a reason. A designer in Figma selects a shape and the right-hand panel becomes that shape’s own properties: its fill, its size, its text. Properties sit with the shape rather than behind a menu named after each one.

The same principle here gives a node, an edge or a group a single place holding colour, size, labels and filters. An analyst therefore describes a selection once and changes it in one place.

The first draft’s action-first left rail above the rebuilt object-first panel
Before and after. The first exploration gave each action a screen. The rebuild put objects first and moved the actions inside each object.

Three people who were never in the room

The new structure decided the top level, and it left the behaviour underneath open. The right-hand sidebar, the contents of the toolbar and the moment immediately after an action were all unresolved. We stepped back and mapped the journeys before going near high fidelity.

Anna is non-technical and wants to see how her team works together. James is semi-technical and imports messaging data to find where collaboration between teams breaks down. Lina is a network analyst who wants control of the algorithms and access to the raw data.

The three came from the brief and the client’s knowledge of the field rather than from interviews. The maps are therefore a structured way of reasoning about the work, not evidence gathered from the people who do it.

Anna’s user journey map, running from importing data to sharing a view
Anna’s journey, one of the three mapped. Five stages, from importing the data to sharing the result, with the pain points marked at every stage.

Five stages each, from loading the data to sharing the result, produced six patterns holding across all three journeys. Two of the six decided the interface. Every persona expected to click an object and edit it, which set the sidebar to follow whatever is selected instead of sitting still. Confusion clustered in the moment after an action, which set every action to confirm itself on screen.

James and Lina both needed to hold one dataset against another, and multi-layer support entered the design there. I built each pattern into a part of the product. A panel follows the selection, a count appears before any filter runs, and layers stay in one network for an analyst to show or hide.

The maps carried one more finding, filed under concerns rather than recommendations. Layers were unclear.

What is the difference between a layer and a group?

Updating the information architecture showed why. Layers and groups sat on the same map, reaching the same place by different routes. Layers were visual subsets an analyst could switch on and off. Groups were selections an analyst could act on. Both could be created from a filter, both carried styling, and both reported their own metrics.

The two definitions held apart on paper and collapsed in use. Both described one act: pulling part of the network out and doing something with it. Keeping two names for one act moves the work of remembering the difference onto the analyst.

I merged them. A layer now means any set of nodes and edges pulled out of the network, however it was produced. The network overview still counts the layers by how they were made, whether an analyst drew them, filtered them or ran an algorithm. Merging the two concepts therefore left an analyst able to see which selections a machine produced.

A layer’s panel showing its description, styling, metrics and controls
One layer, with its description, styling, metrics and controls. Every route into a selection produces a layer with the same parts.
The solution

One idea carries the whole product. An analyst pulls part of a network out, by hand, by filter, by search or by running an algorithm, and every route produces the same object: a layer.

A network begins from a template or a four-step import. A template lists its contents before an analyst opens it, so someone choosing an org chart sees in advance that it carries people, organisations and reporting relationships.

Narrowing a network is where the two kinds of user separate. One thinks in attributes and wants to ask for everyone in marketing whose connections put them near the centre of the network. The other thinks in queries and would rather write one.

Hiding the query would have been the conventional choice, since the non-technical user is the one this tool exists to reach. I put the query on screen instead. The rule builder composes conditions in plain rows and prints the query those rules produced. The network that came back is drawn below it, with the count stated alongside: 102 nodes matched out of 340.

An analyst who writes queries can read the query and edit it. An analyst who does not can see what the rules will do before applying them.

A section of the information architecture showing how a layer is created from a search or an algorithm
One section of the information architecture, showing how a layer is created from a search or an algorithm. Whichever route an analyst takes, the same object comes out.
The advanced filtering panel showing rules and the count of matched nodes
Rules on the right, and the count of what they matched before anything is applied.
The query builder’s preview step showing the generated query and its result
The query the rules wrote, shown back with the network it returned. The analyst who writes queries and the analyst who does not are looking at the same filter.

Whatever produced the selection, the result saves as a layer. Each layer then holds its own styling, its own metrics and its own controls. A single set of people can therefore be recoloured, counted, hidden or exported on its own, without the rest of the network moving.

Layouts were the case that tested the idea. A layout rearranges the whole network, spreading clusters apart or wrapping them in rings around a chosen centre. The obvious home for one is a setting on the network itself. A setting, however, makes two arrangements impossible to compare, because the second replaces the first.

I made a layout produce a layer like everything else. An analyst can therefore save a force-directed arrangement and a radial one as two layers, then move between them to decide which shows the structure more clearly.

Impact and learnings

Delivery was a Figma file and a working prototype. The brief fixed React-based development and left the component library open, naming Material, Mantine and Chakra as some options.

I recommended Mantine, because a graph tool leans on the specialised components rather than the common ones: multi-step wizards, tag inputs, range sliders, nested menus, combo boxes and date pickers. Mantine carries all of those in its free set, where the Material equivalents for data-heavy work sit behind a commercial licence and Chakra’s range is narrower. I drew every screen from it, so the development team receives components it already has rather than pictures to interpret.

Map the journeys before drawing the first structure, not after

The journey maps arrived after the first set of wireframes, and they answered questions the wireframes had raised. Run in the other order, the same maps would have shortened the first exploration. The pattern that settled the sidebar was in the journeys, not in the screens. Mapping costs a few days. Redrawing a structure costs a phase.

Structure is the one decision a better screen cannot fix

The tools in the comparison are competently drawn. What separates them is not the drawing but the idea each one organises itself around. A panel that confuses people can be redrawn on its own. A structure that asks for the same set of people to be defined four times has to be rebuilt from the wireframes up, and every screen standing on it goes with it. The opening of a project is therefore worth spending on a question that produces no screens.

Show the machine’s working rather than asking for trust

Designing for non-technical users usually means hiding complexity, and this product does the opposite at the one moment where it counts. Showing the query, the result and the match count costs a step at the point an analyst is keenest to get on with the work. The step buys something a simpler screen cannot: an analyst who agrees to the change before it happens.

More projects

0
1
Framehouse
Trust infrastructure for film-industry hiring: escrow, verified outcomes, and the failure paths most platforms skip.
The Framehouse job board shown on a laptop, listing three paid roles with their fees
0
3
Kubernetes desktop management tool
An open-source tool for watching Kubernetes clusters, where every element on screen has to earn the space it takes from the cluster.
The Kubernetes desktop management tool shown on a laptop, with cluster CPU, memory and pod metrics
0
4
Website redesign for a High Court
A website for a High Court, where a solicitor filing a document and a school group booking a tour had to be served by the same set of pages.
The High Court Registry page shown on a laptop, with a breadcrumb, the page name and the seven section tabs, Registry active in purple

Contact me

Tell me what you are building

Thanks, your message has arrived. I’ll reply within a couple of working days.
That didn’t send. Please try again, or reach me on LinkedIn.