Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Brunel Visualization Build Status Gitter

Brunel Visualization

What is Brunel?

Brunel defines a highly succinct and novel language that defines interactive data visualizations based on tabular data. The language is well suited for both data scientists and more aggressive business users. The system interprets the language and produces visualizations using the user's choice of existing lower-level visualization technologies typically used by application engineers such as RAVE or D3. It can operate stand-alone and integrated into Jupyter (IPython) notebooks with further integrations as well as other low-level rendering support depending on the desires of the community.

Articles and notes on Brunel can be found in the blog.

Zero to Visualization in Sixty Seconds



Core Features of Brunel

  • Supports standard charts, diagrams, maps and network graphs
  • Automatically chooses good transforms, mappings, and formatting for your data
  • Allows multiple combinations of visualization elements overlay bars, lines, paths, areas and text freely and in a coordinated space.
  • Handles building structures for D3 diagram like hierarchies, treemaps and chords
  • Handles data ranges, binning and stacking automatically
  • Automatically wraps and fits text, even when animating
  • Intelligently works out a good layout for the chart aspects, taking into account the data (so you don't have to guess axis sizes, for example)
  • Provides flexible interactivity including tooltips, pan/zoom and interactive brushing
  • Coordinates multiple visualizations in the same space, including interactive brushing
  • Adds features such as Word clouds and paths with smoothly varying size
  • Data engine is in the Javascript code, so high-speed interactivity works with binning, aggregation and filtering

How to use Brunel

Online; no coding required

The simplest way to get started to go to the online builder application, drop in your own data or reference your data via a URL and build a custom visualization. Once you have a chart you want to share, you can:

  • Just take a screenshot of the page or download the SVG to get a cool picture
  • Copy the Javascript directly into wherever you want to be completely independent of the Brunel service -- this is a great way to rapidly generate D3 Javascript ready for you to modify and deploy.
  • Take the HTML iframe snippet and embed it in a HTML page to have a live call to the Brunel Service

If you are writing an application, you can use the web service to generate Javascript for you on the fly, just as the iframe snippet does -- copy that format and use the call to the Brunel service from your application.

Using the code

If you want to use Brunel from Java, download the latest build and get started! You can also set up your own web server, or add Brunel to an existing one. More details can be found here.

Of course, the purpose of github is for you to grab and modify the code easily -- do that anyway you want!

If you do something cool and fun, consider contributing it back!


Brunel is licensed under the Apache License, Version 2.0 (the "License") You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.