Vexi - Rich UIs for Java

Vexi is a platform written in Java for creating and publishing rich user interfaces for applications.

It provides an XUL-like environment for defining user interfaces. XML makes for a much more natural way of expressing layout than typical declarative code. Vexi UIs are scripted using JavaScript (which, when decoupled from the HTML DOM, is actually rather elegant). Unlike XUL, Vexi is very, very easy to extend. The Vexi core provides a box layout model, and the Vexi widgets are all combinations of boxes (and/or other widgets).

Application UIs, although the main target of Vexi, are not the only thing it is useful for. I am creating a couple of games using Vexi.

To get an idea of Vexi looks / performs, I recommend you try the widget demo.

Vexi has been in development for nearly 7 years. It is maturing, I have created a drag and drop GUI editor that I will release as open source during this quarter (it works fine, I just need to decouple it from the proprietary components of the application it accompanies).

The reason I bring this up here is fairly obvious. There is scope for embedding Vexi in JNode. Some of the benefits that Vexi could bring:
- an extensible widget set with good performance
- a flexible layout environment that can be completely scripted
- an integrated JS engine
- future integrated SVG (possibly using SVGSalamander)
- future drag-and-drop GUI creation environment

Another interesting issue is that Vexi comes with support for truetype fonts. This is done using nestedvm and compiling freetype to MIPS. It's a bit of a cheat but works pretty decently. Nestedvm could be used to run other C/C++ apps on JNode (with or without Vexi).

I could go into more detail but I don't want to spend too long writing out expansive details if it's going to get shot down quickly so it would be interesting to get some kind of reaction before elaborating further.

I honestly believe that (in some wonderous world where I get my dreams realised) Vexi could give JNode an edge that could make JNode stand out above other alternative operating systems. The ability to just create simple applications much like you write HTML could boost JNode to a position where people are pumping out fun little extensions that are graphically rich and easy to embed and/or extend. It's a bit dreamy, but it's not impossible. There are many other cool features to Vexi and Vexi apps just look a lot nicer than most other widget environments allow (I would attach a screenshot but there's no such ability to do so - see for a screenshot of an application I'm working on).