# d3

Published articles for d3.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## PCBRouteAgent: How Close Are LLM Agents to Becoming PCB Routing Engineers?

DevFeed: [PCBRouteAgent: How Close Are LLM Agents to Becoming PCB Routing Engineers?](<https://devfeed.tech/articles/pcbrouteagent-how-close-are-llm-agents-to-becoming-pcb-routing-engineers-120291.md>)

Original publisher: [Read original article](<https://arxiv.org/abs/2611.08175>)

Author: Yue Zhang, Jilei Sun, Liqiang Jing, Yijie Wei, Ruohan Yang

Published: 2026-11-06T05:00:00Z

Content type: article

Language: en

Sources: [arXiv: Artificial Intelligence](<https://devfeed.tech/sources/arxiv-artificial-intelligence.md>)

Topics: [agentic workflows](<https://devfeed.tech/topics/agentic-workflows.md>), [Multi Agent Systems](<https://devfeed.tech/topics/multi-agent-systems.md>), [kicad](<https://devfeed.tech/topics/kicad.md>), [harvestbench](<https://devfeed.tech/topics/harvestbench.md>)

Tags: [abstract](<https://devfeed.tech/tags/abstract.md>), [agent](<https://devfeed.tech/tags/agent.md>), [agents](<https://devfeed.tech/tags/agents.md>), [arxiv](<https://devfeed.tech/tags/arxiv.md>), [best](<https://devfeed.tech/tags/best.md>), [board](<https://devfeed.tech/tags/board.md>), [bounded](<https://devfeed.tech/tags/bounded.md>), [can](<https://devfeed.tech/tags/can.md>), [circuit](<https://devfeed.tech/tags/circuit.md>), [combines](<https://devfeed.tech/tags/combines.md>), [complex](<https://devfeed.tech/tags/complex.md>), [connectivity](<https://devfeed.tech/tags/connectivity.md>), [cs-ai](<https://devfeed.tech/tags/cs-ai.md>), [d2](<https://devfeed.tech/tags/d2.md>), [d3](<https://devfeed.tech/tags/d3.md>), [engineers](<https://devfeed.tech/tags/engineers.md>), [llm](<https://devfeed.tech/tags/llm.md>), [llm-agents](<https://devfeed.tech/tags/llm-agents.md>), [pcb](<https://devfeed.tech/tags/pcb.md>), [pcb-routing](<https://devfeed.tech/tags/pcb-routing.md>), [routing](<https://devfeed.tech/tags/routing.md>)

### AI overview

PCBRouteAgent pairs board-level planning with local routing execution: its Global Routing Planner uses board images and structured electrical and geometric data to choose connection topology, routing order, corridors, and layer transitions. A Detailed Routing Executor implements those guides through KiCad's native routing engine, attempts bounded local recovery, and returns unresolved failures as structured feedback for targeted guide revisions while preserving accepted routes. Across 247 synthetic and real-world boards, reported clean-pass rates were 100% on D2, 94.9% on D3-A, 100% on D3-B, and 40% on D3-C. On the three real-world subsets, it exceeded the best evaluated baseline by 13.9, 36, and 10 percentage points, respectively. Results vary substantially across test splits.

### Source excerpt

arXiv:2611.08175v1 Announce Type: new Abstract: Automating printed circuit board (PCB) routing requires coordinating board-level connectivity decisions with geometric execution under strict design rules. Although recent agents can interact with native routing tools, reliable routing on complex boards remains challenging. We present PCBRouteAgent, a multimodal PCB routing agent inspired by how human engineers coordinate global strategy with local execution. A Global Routing Planner combines board images and structured electrical and geometric information to specify connection topology, routing order, corridors, and layer transitions. A Detailed Routing Executor realizes these guides through KiCad's native routing engine and performs bounded local recovery. Unresolved failures are returned as structured feedback, enabling targeted guide revisions while preserving accepted routes. We evaluate PCBRouteAgent on 247 synthetic and real-world boards from four PCBWorld-Bench test splits. It achieves clean-pass rates of 100%, 94.9%, 100%, and 40% on D2, D3-A, D3-B, and D3-C, respectively. On the three real-world subsets, PCBRouteAgent outperforms the best evaluated baseline in clean-pass rate by 13.9, 36, and 10 percentage points, respectively.

## Generating running routes with GPT-6 Astra and ChatGPT Work

DevFeed: [Generating running routes with GPT-6 Astra and ChatGPT Work](<https://devfeed.tech/articles/generating-running-routes-with-gpt-6-astra-and-chatgpt-work-30507.md>)

Original publisher: [Read original article](<https://simonwillison.net/2026/Sep/12/astra-running-routes/>)

Author: Simon Willison

Published: 2026-09-12T23:56:42Z

Content type: opinion

Language: en

Sources: [Simon Willison](<https://devfeed.tech/sources/simon-willison.md>), [Simon Willison's Weblog](<https://devfeed.tech/sources/simon-willison-s-weblog.md>)

Topics: [ChatGPT](<https://devfeed.tech/topics/chatgpt.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [GeoJSON](<https://devfeed.tech/topics/geojson.md>), [Code](<https://devfeed.tech/topics/code.md>), [d3.js](<https://devfeed.tech/topics/d3-js.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-2-235](<https://devfeed.tech/tags/ai-2-235.md>), [chatgpt](<https://devfeed.tech/tags/chatgpt.md>), [chatgpt-204](<https://devfeed.tech/tags/chatgpt-204.md>), [code](<https://devfeed.tech/tags/code.md>), [d3](<https://devfeed.tech/tags/d3.md>), [d3-15](<https://devfeed.tech/tags/d3-15.md>), [generative-ai](<https://devfeed.tech/tags/generative-ai.md>), [generative-ai-1-981](<https://devfeed.tech/tags/generative-ai-1-981.md>), [geospatial](<https://devfeed.tech/tags/geospatial.md>), [geospatial-85](<https://devfeed.tech/tags/geospatial-85.md>), [gpt](<https://devfeed.tech/tags/gpt.md>), [gpt-6-astra](<https://devfeed.tech/tags/gpt-6-astra.md>), [gpt-6-astra-9](<https://devfeed.tech/tags/gpt-6-astra-9.md>), [llms](<https://devfeed.tech/tags/llms.md>), [llms-1-947](<https://devfeed.tech/tags/llms-1-947.md>), [map](<https://devfeed.tech/tags/map.md>), [openai](<https://devfeed.tech/tags/openai.md>), [openai-463](<https://devfeed.tech/tags/openai-463.md>), [python](<https://devfeed.tech/tags/python.md>), [skills](<https://devfeed.tech/tags/skills.md>), [skills-15](<https://devfeed.tech/tags/skills-15.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

The article describes using ChatGPT Work with GPT-6 Astra to generate 5K and 10K running routes from OpenStreetMap data, producing an embedded visualization and downloadable GPX and GeoJSON files. It also criticizes the lack of visibility into the generated Python code and the loss of that code after thread compaction.

### Source excerpt

Here's a neat thing I had ChatGPT Work with GPT-6 Astra (Max) do this morning: I live at <my address>. Figure out 5K and 10K running routes from me that loop from my house. Use OSM data. It worked for 27 minutes and produced exactly what I'd asked for, as both an embedded visualization and downloadable GPX file and GeoJSON files. Here's that 5K route: When I asked it how it had created the route, it replied: I used Nominatim to locate the address and Overpass to download local OpenStreetMap roads and trails, then calculated the loops locally. Frustratingly, the actual code it ran and exact details of what it did weren't visible to me in the ChatGPT UI. I see this lack of transparency is an anti-feature. By the time I thought to ask for a copy of the Python code it had used, ChatGPT was unable to provide it. This appears to be because the thread had been compacted. I think any LLM system that uses compaction needs to both preserve the pre-compacted text and make that text available via agent tool calls, to protect against this kind of problem. As for displaying the map to me, that used the visualize skill. It created a file called /workspace/el-granada-5k-share.html to embed directly into the ChatGPT UI. Here's a copy of that HTML, which starts like this: <div id="eg-share-loop"> <div class="viz-row"><h3>El Granada harbor loop</h3><span class="text-small">5.1 km</span></div> <div id="eg-share-stage"></div> <div class="text-small text-muted">Map data © <a href="https://www.openstreetmap.org/copyright" target="_blank" rel="noopener">OpenStreetMap contributors</a></div> <style> #eg-share-loop { width:100%; } #eg-share-loop #eg-share-stage { width:100%; margin:8px 0; } #eg-share-loop .eg-share-map { display:block; width:100%; touch-action:none; } #eg-share-loop .eg-share-map text { fill:var(--foreground); font-size:12px; font-weight:400; } #eg-share-loop .eg-share-label { paint-order:stroke; stroke:var(--background); stroke-width:3px; stroke-linejoin:round; } </style> <s

## Agentic Coding: Bet on the Primitives

DevFeed: [Agentic Coding: Bet on the Primitives](<https://devfeed.tech/articles/agentic-coding-bet-on-the-primitives-18935.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/agentic-coding-bet-on-primitives/>)

Author: Robin Wieruch

Published: 2026-07-31T06:00:00Z

Content type: opinion

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [agentic-coding](<https://devfeed.tech/topics/agentic-coding.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Application Development](<https://devfeed.tech/topics/application-development.md>)

Tags: [abstraction](<https://devfeed.tech/tags/abstraction.md>), [agentic-coding](<https://devfeed.tech/tags/agentic-coding.md>), [ai-coding-agents](<https://devfeed.tech/tags/ai-coding-agents.md>), [ai-engineer](<https://devfeed.tech/tags/ai-engineer.md>), [animation](<https://devfeed.tech/tags/animation.md>), [animations](<https://devfeed.tech/tags/animations.md>), [api](<https://devfeed.tech/tags/api.md>), [behavior](<https://devfeed.tech/tags/behavior.md>), [build-vs-buy-components](<https://devfeed.tech/tags/build-vs-buy-components.md>), [charts](<https://devfeed.tech/tags/charts.md>), [components](<https://devfeed.tech/tags/components.md>), [d3](<https://devfeed.tech/tags/d3.md>), [d3-vs-recharts](<https://devfeed.tech/tags/d3-vs-recharts.md>), [design-system](<https://devfeed.tech/tags/design-system.md>), [design-tokens](<https://devfeed.tech/tags/design-tokens.md>), [flexibility](<https://devfeed.tech/tags/flexibility.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [library](<https://devfeed.tech/tags/library.md>), [low-level](<https://devfeed.tech/tags/low-level.md>), [math](<https://devfeed.tech/tags/math.md>), [react](<https://devfeed.tech/tags/react.md>), [rendering](<https://devfeed.tech/tags/rendering.md>), [styling](<https://devfeed.tech/tags/styling.md>), [svg](<https://devfeed.tech/tags/svg.md>)

### AI overview

In a one-hour comparison building matching React chart components, D3's math primitives with React-rendered SVG matched the design system and supported animations, crosshair tooltips, and legend filtering without library workarounds. Recharts reached about 80% of the target faster, but the remaining customization needed custom SVG code; its entrance animation also froze in the project's React stack, with disabling animation the only workaround described. The author frames high-level libraries as prepackaged implementation labor that trades flexibility for convenience, and argues agentic coding changes the cost of building on primitives you control. The excerpt ends during a discussion of wrappers and patches, so it does not establish the article's full argument.

### Source excerpt

Agentic coding collapses the cost of implementation labor. Why the rational bet is moving from high-level libraries back to primitives you own.

## DependenTree, Graph Visualization Library

DevFeed: [DependenTree, Graph Visualization Library](<https://devfeed.tech/articles/dependentree-graph-visualization-library-15599.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/dependentree-graph-visualization-library>)

Author: Amogh Kambale

Published: 2022-03-23T19:00:00Z

Content type: article

Language: en

Sources: [Square Corner](<https://devfeed.tech/sources/square-corner-blog-medium.md>)

Topics: [Library](<https://devfeed.tech/topics/library.md>), [Data visualization](<https://devfeed.tech/topics/data-visualization.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>)

Tags: [canvas](<https://devfeed.tech/tags/canvas.md>), [d3](<https://devfeed.tech/tags/d3.md>), [data-lineage](<https://devfeed.tech/tags/data-lineage.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [dependency-graph](<https://devfeed.tech/tags/dependency-graph.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [graph](<https://devfeed.tech/tags/graph.md>), [graph-visualization](<https://devfeed.tech/tags/graph-visualization.md>), [library](<https://devfeed.tech/tags/library.md>), [scale](<https://devfeed.tech/tags/scale.md>), [visualization](<https://devfeed.tech/tags/visualization.md>)

### AI overview

DependenTree presents large dependency graphs as collapsible tidy trees so users can focus on a root and expand only the branches they need. To handle Block's 14,000 ETLs, it builds graph pointers and downstream mappings in the browser; the reported payload fell from 100 MB for a partial mapping to 5 MB for the full lineage set. It limits traversal by cutting off nodes that exceed a chosen depth or form cycles, using clones without further dependencies to prevent repeated traversal and infinite loops. The depth cutoff requires judgment. SVG is straightforward to animate but can drop frames as trees grow. Canvas was faster per node in the author's timing test (25 μs versus 2,005 μs for SVG), but its repeated full redraw keeps frame rates low for large trees, and reproducing D3's enter/update/exit transitions proved difficult. The canvas approach was abandoned; the author expects typical use to display only a few dozen moving nodes.

### Source excerpt

Visualize dependency graphs at scale

## Visualizing an Assassin Puzzle

DevFeed: [Visualizing an Assassin Puzzle](<https://devfeed.tech/articles/visualizing-an-assassin-puzzle-40422.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2018/07/24/visualizing-an-assassin-puzzle/>)

Published: 2018-07-24T08:00:09Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Computing](<https://devfeed.tech/topics/computing.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [d3.js](<https://devfeed.tech/topics/d3-js.md>), [Demo](<https://devfeed.tech/topics/demo.md>), [Library](<https://devfeed.tech/topics/library.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [computing](<https://devfeed.tech/tags/computing.md>), [d3](<https://devfeed.tech/tags/d3.md>), [demo](<https://devfeed.tech/tags/demo.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [library](<https://devfeed.tech/tags/library.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [programming](<https://devfeed.tech/tags/programming.md>), [software](<https://devfeed.tech/tags/software.md>), [torus](<https://devfeed.tech/tags/torus.md>), [visualization](<https://devfeed.tech/tags/visualization.md>)

### AI overview

This tutorial presents a visualization of an assassin puzzle in which shots bounce around a square like billiards and guards must block possible paths to a target. It explains the d3-based visualization and the geometric functions used to trace bouncing rays and calculate guard positions.

### Source excerpt

Over at Math3ma, Tai-Danae Bradley shared the following puzzle, which she also featured in a fantastic (spoiler-free) YouTube video. If you're seeing this for the first time, watch the video first. Consider a square in the xy-plane, and let A (an "assassin") and T (a "target") be two arbitrary-but-fixed points within the square. Suppose that the square behaves like a billiard table, so that any ray (a.k.a "shot") from the assassin will bounce off the sides of the square, with the angle of incidence equaling the angle of reflection.

## Integrating React and D3.js for Data Visualization

DevFeed: [Integrating React and D3.js for Data Visualization](<https://devfeed.tech/articles/playing-with-react-and-d3-21863.md>)

Original publisher: [Read original article](<https://reactjsnews.com/playing-with-react-and-d3>)

Author: Zach Silveira

Published: 2016-04-21T17:00:00Z

Content type: tutorial

Language: en

Sources: [ReactJS News](<https://devfeed.tech/sources/reactjs-news.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Data visualization](<https://devfeed.tech/topics/data-visualization.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [User Interfaces](<https://devfeed.tech/topics/user-interfaces.md>), [Document Object Model (DOM)](<https://devfeed.tech/topics/dom.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [d3](<https://devfeed.tech/tags/d3.md>), [d3-js](<https://devfeed.tech/tags/d3-js.md>), [data-visualization](<https://devfeed.tech/tags/data-visualization.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [react](<https://devfeed.tech/tags/react.md>), [user-interfaces](<https://devfeed.tech/tags/user-interfaces.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>)

### AI overview

This tutorial explains how React and D3.js can be used together for data visualization. It contrasts React's virtual DOM and reusable UI components with D3's direct DOM manipulation and data-focused utilities, and discusses React's role in building client-side interfaces.

### Source excerpt

D3 is great at data visualizations, but it manipulates the DOM directly to display that data. Rendering DOM elements is where React shines. It uses a virtual representation of the DOM (virtual DOM) and a super performant diffing algorithm in order to determine the fastest way to update the DOM. We want to leverage React's highly efficient, declarative, and reusable components with D3's data utility functions. At this point, we can safely say that React is the preferred JavaScript library for building user interfaces. It is used practically everywhere and is almost as pervasive as jQuery. It has an API that is simple, powerful, and easy to learn. Its performance metrics are really impressive thanks to the Virtual DOM and its clever diff algorithm between state changes. Nothing, however, is perfect, and React too has its limitations. One of React's greatest strengths is the ease with which it integrate third-party libraries, but some libraries, especially opinionated ones, are more difficult to integrate than others. An extremely popular library that can be tricky to integrate with React is D3.js. D3 is an excellent data visualization library with a rich and powerful API. It is the gold standard of data visualizations. However, Because this library is opinionated about data, it is no trivial endeavour to get it to work with React. A few simple strategies permit these two libraries to work together in very powerful ways. Editor's Note: Check out our upcoming workshop, React and D3, a crash course in learning how to create data visualizations with these two in demand libraries. Reserve your spot now on Eventbrite and get 20% off admission. Learn more at the Eventbrite page What is React? React is an open-source JavaScript library for creating user interfaces that addresses the challenges of building large applications with data that changes over time. Originally developed at Facebook, it is now seen in many of the most commonly used web applications including Instagram,

## Plotting Reddit post frequencies with d3

DevFeed: [Plotting Reddit post frequencies with d3](<https://devfeed.tech/articles/plotting-reddit-post-frequencies-with-d3-32151.md>)

Original publisher: [Read original article](<https://adambard.com/blog/plotting-reddit-post-frequencies-with-d3/>)

Published: 2016-02-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [d3.js](<https://devfeed.tech/topics/d3-js.md>), [plotting](<https://devfeed.tech/topics/plotting.md>), [data](<https://devfeed.tech/topics/data.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [charts](<https://devfeed.tech/tags/charts.md>), [code](<https://devfeed.tech/tags/code.md>), [d3](<https://devfeed.tech/tags/d3.md>), [d3-js](<https://devfeed.tech/tags/d3-js.md>), [data](<https://devfeed.tech/tags/data.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [plotting](<https://devfeed.tech/tags/plotting.md>)

### AI overview

A tutorial describing how the author added a 7x24 color-coded grid plot to Later's Reddit post timing analysis page using D3.js. The chart represents posting frequency across hours and days of the week, providing a more precise view than separate bar charts.

### Source excerpt

This week I added a better graph to Later (for Reddit)'s post timing analysis page. Previously, the most common time and the most common day were plotted on separate bar charts. However, I noticed that I got called out on this in this article on Medium, which offered a pretty sensible alternative that I wasted no time in ripping off wholesale. I still have the bar graphs in, but I also added a 7x24 color-coded grid plot, allowing for a more accurate view of exactly when the most popular posts were posted.

## Welcome to Square! Let's Learn D3!

DevFeed: [Welcome to Square! Let's Learn D3!](<https://devfeed.tech/articles/welcome-to-square-let-s-learn-d3-15956.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/welcome-to-square-lets-learn-d3>)

Author: Square Engineering

Published: 2014-10-13T16:07:00Z

Content type: tutorial

Language: en

Sources: [Square Corner](<https://devfeed.tech/sources/square-corner-blog-medium.md>)

Topics: [Learning](<https://devfeed.tech/topics/learning.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [contributions](<https://devfeed.tech/tags/contributions.md>), [cube](<https://devfeed.tech/tags/cube.md>), [d3](<https://devfeed.tech/tags/d3.md>), [d3-js](<https://devfeed.tech/tags/d3-js.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [examples](<https://devfeed.tech/tags/examples.md>), [github](<https://devfeed.tech/tags/github.md>), [learning](<https://devfeed.tech/tags/learning.md>), [neo](<https://devfeed.tech/tags/neo.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [square](<https://devfeed.tech/tags/square.md>), [teaching](<https://devfeed.tech/tags/teaching.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [visualization](<https://devfeed.tech/tags/visualization.md>)

### AI overview

Square's Intro to D3.js tutorial grew from notes Zach Margolis prepared while teaching the company's three-week new engineer onboarding program. It offers an example-based introduction intended to help learners with D3.js's steep learning curve, and Square invited contributions through its square/intro-to-d3 GitHub project.

### Source excerpt

Our internal tutorial for learning D3.

## Introducing the New GitHub Graphs

DevFeed: [Introducing the New GitHub Graphs](<https://devfeed.tech/articles/introducing-the-new-github-graphs-70443.md>)

Original publisher: [Read original article](<https://github.blog/news-insights/the-library/introducing-the-new-github-graphs/>)

Author: Justin Palmer

Published: 2012-04-26T03:09:40Z

Content type: release

Language: en

Sources: [GitHub Blog](<https://devfeed.tech/sources/github-engineering.md>)

Topics: [GitHub](<https://devfeed.tech/topics/github.md>), [plotting](<https://devfeed.tech/topics/plotting.md>), [Graph Mining](<https://devfeed.tech/topics/graph-mining.md>)

Tags: [d3](<https://devfeed.tech/tags/d3.md>), [feature](<https://devfeed.tech/tags/feature.md>), [github](<https://devfeed.tech/tags/github.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [news-insights](<https://devfeed.tech/tags/news-insights.md>), [repositories](<https://devfeed.tech/tags/repositories.md>), [the-library](<https://devfeed.tech/tags/the-library.md>)

### AI overview

GitHub has revamped its repository graphs and added views of contributors, annual commit activity, lifetime additions and deletions, and commit timing. The historical update notes that the Impact graph is no longer a GitHub feature. The graphs are built with the d3 library.

### Source excerpt

Translations: Ukrainian. We've revamped our existing graphs and added three new graphs to help you discover even more about GitHub hosted repositories. Contributors See who's contributing to a project and...

## Ember and D3: Building responsive analytics

DevFeed: [Ember and D3: Building responsive analytics](<https://devfeed.tech/articles/ember-and-d3-building-responsive-analytics-15622.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/ember-and-d3-building-responsive-analytics>)

Author: Square Engineering

Published: 2012-04-04T16:01:00Z

Content type: article

Language: en

Sources: [Square Corner](<https://devfeed.tech/sources/square-corner-blog-medium.md>)

Topics: [Ember](<https://devfeed.tech/topics/ember.md>), [Handlebars](<https://devfeed.tech/topics/handlebars.md>), [data-engineering](<https://devfeed.tech/topics/data-engineering.md>), [Business, Industry, Usability, User Experience, User Research, Web Strategy](<https://devfeed.tech/topics/business-industry-usability-user-experience-user-research-web-strategy.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [d3](<https://devfeed.tech/tags/d3.md>), [data](<https://devfeed.tech/tags/data.md>), [ember](<https://devfeed.tech/tags/ember.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [responsive](<https://devfeed.tech/tags/responsive.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

Square's analytics panel used Ember.js to coordinate data and views, with D3.js rendering charts and tables; merchants could explore payment counts by date, weekday, hour, and amount, filtering groupings in real time. The team sent all payments to the browser, which strained servers and JavaScript. It switched to Yajl for streaming JSON with lower memory use, delivered data in chunks, and fetched payment metadata on demand. In the browser, Crossfilter updated five other views when users changed filters. CSS, DOM, and animation tuning helped make responses near-instant for large merchants; the article reports a two-orders-of-magnitude performance improvement over two weeks. The excerpt also notes that Ember's MVC structure improved testability and that its Jasmine test suite ran quickly and integrated continuously.

### Source excerpt

How we bult our web analytics panel with Ember and D3.

## Cube: Time Series Visualization

DevFeed: [Cube: Time Series Visualization](<https://devfeed.tech/articles/cube-time-series-visualization-15593.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/cube-time-series-visualization>)

Author: Square Engineering

Published: 2011-09-15T16:00:00Z

Content type: release

Language: en

Sources: [Square Corner](<https://devfeed.tech/sources/square-corner-blog-medium.md>)

Topics: [Data visualization](<https://devfeed.tech/topics/data-visualization.md>), [Time Series](<https://devfeed.tech/topics/time-series.md>), [Temporal data](<https://devfeed.tech/topics/temporal-data.md>), [d3.js](<https://devfeed.tech/topics/d3-js.md>)

Tags: [aggregate](<https://devfeed.tech/tags/aggregate.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [analyze](<https://devfeed.tech/tags/analyze.md>), [browser](<https://devfeed.tech/tags/browser.md>), [charts](<https://devfeed.tech/tags/charts.md>), [cube](<https://devfeed.tech/tags/cube.md>), [d3](<https://devfeed.tech/tags/d3.md>), [dashboards](<https://devfeed.tech/tags/dashboards.md>), [data-visualization](<https://devfeed.tech/tags/data-visualization.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [events](<https://devfeed.tech/tags/events.md>), [exploration](<https://devfeed.tech/tags/exploration.md>), [interaction](<https://devfeed.tech/tags/interaction.md>), [linking](<https://devfeed.tech/tags/linking.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [monitor](<https://devfeed.tech/tags/monitor.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [node](<https://devfeed.tech/tags/node.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [time-series](<https://devfeed.tech/tags/time-series.md>)

### AI overview

Cube is an open-source system built with MongoDB, Node, and D3 for visualizing timestamped events as real-time aggregate metrics. Events can include optional structured data and come from different systems, letting users compare related measures such as website traffic and database load. The excerpt says browser dashboards can be assembled with simple queries and by dragging charts onto the screen. This initial release has only basic visualization components; coordinated views, dynamic filtering, brushing, and linking are described as planned features.

### Source excerpt

Announcing an open-source system for visualizing time series data, built with MongoDB, Node, and D3.