Thursday, March 22, 2012

Proof history

We've implemented tree history functions to store past states of the proof. In existential graphs this is essential because the proof is the series of steps and not contained in any particular state. We've also implemented the first few rules of inference but we haven't connected all of them to the interface yet.

We still need to come up with a method for selecting objects before we can tie some of the rules of inference we've implemented into the interface. We also need to come up with a method for handing insertion of complex structures. I'd prefer to be able to do that without having to use a dialog box or similar.

Currently our proof history system saves the entire tree but we are considering making the history store just the changes instead.

Friday, March 9, 2012

Neat Javascript Graphics Libraries

Here are some really neat javascript libraries if you want to do wonderful graphical things in your browser:

Canvas:
  • CakeJs - This scene-graph library was one of the fastest and most responsive that I found and it has some support for mobile devices too. It has many performance optimizations that are key for using the html5 canvas.
  • Processing.js - The classic Processing graphics framework ported to javascript. The neat thing is that it translates a converts a regular Processing .pde file into a javascript file for use on the canvas. This means you could have a program that works on both a java applet and one that works on an html5 canvas! Plus it has a large community from the javascript side and the enormous processing community.
  • Three.js - A really awesome and powerful library for doing 3D graphics using the canvas or webgl.
  • EaselJS - Another neat scene-graph library, although not as fast as CakeJs it has a lot of support for use with external libraries like animation and sound.
  • Paper.js - A very very very pretty canvas scene-graph library that uses scalable vector graphics(SVGs) to render really clean and fast interactive graphics.
SVG:
  • Raphael - The library we're using for our project. Its another very very very pretty scene-graph library except it doesn't use the canvas and renders everything directly using SVGs so its externally fast for things with a low load of dynamic and moving content. It also works very fast on mobile devices and supports multi-touch. Also if you've seen the really neat graphs and charts on github, those are similar to what can be done using Raphael.