Viva la Canvas

Hey friends! I gave in and finally integrated <canvas> support into JSViz, and just in time for the Safari 3 Beta (which I'm really digging so far)!

Note: To render with canvas, you'll need Firefox 1.5, Safari 2.0, or Opera 9. JSViz gracefully degrades to alternative rendering platforms (SVG, HTML) when support is not present.

Continue reading "Viva la Canvas" »

Everybody wants tooltips

I get lot's of e-mails from JSViz users that want to know how to integrate tooltips into their graphs. Up until now, my responses have been something like this:

Yeah, that's super easy and everyone is always asking. I'll work up an example as soon as I have moment.

So I had a moment and here it is:

Continue reading "Everybody wants tooltips" »

JSViz 0.3.3 Patch #2

Howdy friends, I've just uploaded another patch to 0.3.3. This patch covers some issues from the discussion board:

Improved SVG Rendering Performance

See the discussion here. No interface changes were required.

Added configurations for "type-driven" Force Directed Graph attributes

See discussion here. The constants used by ForceDirectedLayout.js have been removed in favor of a default configuration.

See comments and code in Example Force Directed Graph for more details. I don't currently have a good example of directed edge configurations (If you make one, I'd love to use it!).

Modified HTMLGraphView to place graph in contained

Until now, containers were used to help dictate graph placement, but HTML elements in graphs were rendered in the document.body. This made it difficult to use relatively positioned containers, and impossible to assert that if your graph exceeds the bounds, it doesn't overlap other content. No interface changes were required for this update.

Example #1: Our Snowflake Graph in a containing DIV
Example #2: Our Snowflake Graph in a relative-positioned containing DIV, with hidden overflow

There are a handful of other feature requests on the code site. I'm not sure which of these will make it into 0.3.3, but I'm expecting to do one more patch before 0.3.4.

Ideas, contributions, and comments are always welcome. The discussion board is the best place for feedback and help.

Google Web Toolkit Wrapper for JSViz

Alistair Rutherford has created a wrapper that enables use of JSViz from the Java-based Google Web Toolkit. Check out the announcement on the Discussion Board or visit the Project Site for more details.

Also check out Alistair's traffic visualization site at http://www.gtraffic.info/. Nice work Alistair!

New Project Tools

So if you've visited the JSViz.org website recently, you've probably noticed that we're now using some new tools to manage the project.

We've set up issue tracking and migrated the documentation wiki over to Google Code. Join up and you can submit issues and contribute to the documentation effort.

We've also created a discussion group on Google Groups. This is a good place to make feature requests, share your ideas and observations, and tell us about your projects.

This is all part of an effort to help JSViz users contribute to the project. Over the past months, user suggestions and code contributions have been a great asset. A number of users are currently working on contributions and projects that compliment JSViz and I'm eager to see these released. To date, the discussion has taken place in isolation, via e-mail or in my kitchen. While this has it's place, I think the project will benefit from more open conversation. So have at it! Let us know what you think!

JSViz 0.3.3 Patched ... and License Change

I've just posted a patch to the 0.3.3 release that includes some bug fixes. See the change log for details.

Oh! I almost forgot. We've migrated to the Apache 2.0 License. This should be functionally identical to the Creative Commons Attribution License that we've used in the past. The reason for the change is that Creative Commons license isn't intended for software -- Though it sure would be convenient if we could cover blog content and software with one license. In any event, we wanted to use a license that enables developers to comfortably integrate and distribute JSViz with their projects. I think the Apache license hits the mark.

Tutorial: Building a Snowflake Graph from XML

JSViz 0.3.3 includes a few examples to help you get started. In this tutorial, I'm going to go over one of them. We'll create a Snowflake Graph from the contents of an XML file. You can find the example source, with comments based on this tutorial in the 0.3.3 Distribution.

Here's the final product

1) Start with a new HTML file

Add appropriate JSViz imports and an empty "init()" function body:

Continue reading "Tutorial: Building a Snowflake Graph from XML" »

JSViz 0.3.3 Released

JSViz 0.3.3 is now available. This release includes two major features:

Snowflake Model is an updated implementation of the "Tree Model" offered in JSViz 0.2. This is a geometric model, offering superior speed to Force Directed layouts, but only capable of representing hierarchical data (sorry, no circuits).

An Example Snowflake Graph

Layouts offer a simplified interface to the core JSViz libraries. New projects can now be created with minimal code and simple configuration. Additional examples, using Layouts:

An Example Force Directed Graph with Data Loader
An Example Force Directed Graph with Randomly Generated Data

You can download the full source as a single ZIP archive or browse individual files on the Download page

I'll follow up with tutorials shortly.

Welcome to the new jsviz.org!

Welcome to the new official home of JSViz. I've put together this website to better facilitate collaboration as this project moves forward.

While things are a little sparse at the moment, in time you'll find:

  • documentation
  • answers to frequent questions
  • opportunities to request and comment on new features
  • bug submission and tracking
  • the latest downloads
  • and resources for contributing to the JSViz project

Everything on the site is read/write. Feel free to comment and edit whenever you can. Thanks, and have fun!

Kyle Scholz

Project Blog