As having a social life on this friday night was really above my forces (and as I was too lazy to renew my cell phone credit), I worked a little on the GUI ideas I’ve had along this week. Here is a screenshot of the result :

shoot535x696.png{.imagelink}

Download the (non functional) demo (Java 1.5 required) !

Here are the main features of this prototype :

  • nice boxes for nodes/variables with rounded angles and pastel colors. I find the result more visually appealing than any of the bayesian network applications I’ve seen on the web (Hugin, SMILE, Netica, and Bayesia – which is still very nice). I still need to add bars and / or percentages for variables values in boxes ([Edit Oct. 14th] done !)
  • nodes automatically expand when mouse is over, to show additional information
  • when the user clicks on a node, it toggles this node’s stickiness : a sticky node stays expanded even after the mouse exited from it
  • the user can move nodes where he wants, just by dragging them (hold mouse and move)
  • arrows start and end points are placed neatly at the borders of the nodes boxes, even while the user moves nodes
  • antialiased rendering
  • straightforward use of Swing components to minimize coding time and maximize reusability
  • will support zooming of the network (without zooming of boxes) + autofit (special algorithm to compute best zoom level for mixed fixed-size / zoom-dependent graphical elements)