Graphviz todo list 8-July-2008

The 4 categories give a rough time as to when a task should be done, and reflect an assessment of the task's ease multiplied by its importance. Thus, orthogonal layouts are extremely important but not easy, so they fall into category 2. The following denote owners:
AB=Arif Bilgin
ERG=Emden Gansner
JCE=John Ellson
SCN=Stephen North
YH=Yifan Hu


Category 0

ALL - Revise the buglist
SCN - Update dot/neatoguide

Category 1

SCN - Lightweight edge labels in dot
SCN - Treemaps
JCE - Extend attribute set for line styles
JCE - Allow arrowheads in the middle of edges
JCE - Support single, uniform font descriptors à la pango
ERG - Better aspect ratio in dot
ERG - New text labels with font elements <B>, <I>, <TT>, etc. (support via fontconfig or egregious hacks)
ERG - New orthogonal routing code
AB  - Create Graph editor for Topview/Graphviz with OpenGL and GTK. (smyrna - in process) (Deprecate use of lefty)
YH/ERG - Clusters in sfdp
YH/ERG - Fixed nodes in sfdp

Category 2

SCN/AB - New dot core:
   - cgraph
   - new rank assignment (have prototype)
   - new mincross + clusters (partial prototype)
   - use floats not ints where appropriate
   - symmetrize layouts
  - Ulrik's improvements with network simplex
JCE - Shapes
	- SVG grammar or other grammar to specify node and arrow shapes
	- user-defined nodes in all code generators
YH/ERG - additional graph packing strategies
? - Filters for GraphML, Matrix Market and Chaco formats.
? - Library for bundled edges (Given two sets of nodes, with positions, 
forming a bipartite graph, return splines to bundle the edges together)

Category 3

Generic label placement, with and without modifying graph layout.
Tabular layout in rows and columns in dot (swim lanes)
Support for compound graphs.
Spline router improvement (Gordon's improvements, alpha adjustments, fewer
  inflection points)
Fast incremental hierarchical layout
Edge routing with just two vnodes per edge (after Kaufmann)
Graph language improvements
  local name spaces
  subclassing
Shapes - new parallelogram shape where angle is fixed for varying text
Orthogonal layouts.

General R&D directions

Incremental layouts
Dot with orthogonal, coalesced edges (e.g., this)
Constraint-based layouts
Display of large-graphs (hair ball problem)
 - relaxing constraining edges 
 - edge bundles
Venn diagrams 
Integration of geographic info - maps

Done

JCE - Extend attribute set for line thickness
ERG - New text labels with font elements <FONT>
ERG - Allow edges as line segments and polylines
ERG - New multiedge code
YH/ERG - New overlap adjustment strategies
YH - Faster fdp (sfdp)
ERG - Variable port depending on layout

Retired

JCE - Revise GV_FILE_PATH to work as directory list; remove loose ends
ERG - eliminate the nonlinear adjustment
 - use convex hull or alpha shapes