Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. D3
  3. d3-dag

d3-dag

MITTypeScriptv1.2.1

A D3.js extension providing layout algorithms for visualizing directed acyclic graphs (DAGs) with multiple layout strategies.

Visit WebsiteGitHubGitHub
1.5k stars91 forks0 contributors

What is d3-dag?

d3-dag is a D3.js extension that provides layout algorithms and data structures for visualizing directed acyclic graphs (DAGs). It solves the problem of visualizing hierarchical data that isn't in a tree structure, such as genetic data, by offering multiple layout strategies like Sugiyama, Zherebko, and grid layouts.

Target Audience

Data visualization developers and researchers working with hierarchical, non-tree data structures like dependency graphs, genetic lineages, or workflow diagrams who need to render them as DAGs.

Value Proposition

Developers choose d3-dag for its specialized focus on DAG layouts within the D3 ecosystem, its modern operator-based API, and its multiple algorithmic options that go beyond D3's native tree capabilities.

Overview

Layout algorithms for visualizing directed acyclic graphs

Use Cases

Best For

  • Visualizing genetic ancestry or phylogenetic trees
  • Rendering software dependency graphs
  • Creating layered workflow or process diagrams
  • Building interactive DAG editors with dynamic node toggling
  • Implementing topological sorts with visual layouts
  • Displaying hierarchical data that contains cross-links or merges

Not Ideal For

  • Projects requiring out-of-the-box, interactive graph visualizations with built-in UI components
  • Large-scale graphs with thousands of nodes, where performance-optimized libraries like sigma are better suited
  • General graph manipulation beyond DAGs, such as cyclic graphs or network analysis
  • Teams needing actively maintained libraries with frequent updates and new features

Pros & Cons

Pros

Multiple Layout Algorithms

Offers Sugiyama, Zherebko, and grid layouts, providing flexible options for different DAG visualization styles, as demonstrated in the codepen examples.

Modern Operator-Based API

Uses a fluent, immutable operator pattern for easy behavior modification, making the API clean and predictable, as highlighted in the general usage notes.

Dedicated DAG Data Structure

Provides a specialized graph structure for manipulating DAGs, addressing the limitation of D3's tree-based hierarchies for non-tree hierarchical data.

Interactive Dynamic Layouts

Supports dynamic layouts where nodes can be activated or deactivated, enabling interactive visualizations, as shown in the dynamic layout example.

Cons

Light Maintenance Mode

The author states it's effectively in light maintenance with limited expansion to new use cases, which could impact long-term support and feature development.

Requires Custom Rendering

Only provides layout algorithms; users must handle the actual visualization with D3 or other libraries, adding complexity for those expecting pre-built components.

Niche Focus on Static DAGs

Primarily designed for small to medium static DAGs, not optimized for large or highly dynamic graphs, as acknowledged in the status section.

Frequently Asked Questions

Quick Stats

Stars1,510
Forks91
Contributors0
Open Issues3
Last commit1 month ago
CreatedSince 2018

Tags

#graph#directed-acyclic-graph#typescript#javascript-library#data-visualization#graph-visualization#d3

Built With

D
D3.js
J
JavaScript
T
TypeScript

Links & Resources

Website

Included in

D35.3k
Auto-fetched 1 day ago

Related Projects

rechartsrecharts

Redefined chart library built with React and D3

Stars27,210
Forks1,931
Last commit2 days ago
vxvx

🐯 visx | visualization components

Stars20,830
Forks766
Last commit1 month ago
plotly.jsplotly.js

Open-source JavaScript charting library behind Plotly and Dash

Stars18,217
Forks1,999
Last commit3 days ago
nivonivo

nivo provides a rich set of dataviz components, built on top of the awesome d3 and React libraries

Stars14,038
Forks1,075
Last commit2 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub