What is Gradient?
What's new
2005-01-03: The 1.1 beta is up. See also the blog post.
2004-09-15: I have a plan.
2004-08-27: Interesting thread on Volity-devel - a project similar in some ways to Gradient - that I run with and is picked up and elaborated on. More here.
2004-08-18: I have no Internet access @ home for the next month or two, so updates are going to be slow for a while.
2004-07-21: I till have no idea how CVS integrates with SSH. Also, the what's new dates are correct. Whoops.
2004-07-13: The Bug reporting system is now up and running. Also, fixed typos & 404's.
Also: A good intro to whiteboarding over XMPP using [t]SVG.
2004-07-12: Thanks to Peter Saint-Andre, we now have a jabberstudio.org project. Once I've set it up, it will take care of CVS, bug tracking, mailing lists, etc.
2004-07-12: Initial release.
Gradient is an extension of the XMPP protocol (aka Jabber).
Gradient enables the transfer and update of SVG, and other XML documents, over XMPP, making use of XMPP's broadcast, unicast and RPC capabilities.
Document loading takes place using a normal client-server model superimposed on XMPP, but once loaded, documents can act as nodes in an XMPP-based P2P network.
What does Gradient do?
Clients can retrieve XML documents via XMPP, incorporating other protocols for large documents or non-XML data. Gradient then enables the following:
Servers can modify client XML documents, and send data for processing by embedded ECMAScript in real-time, either individually, or using broadcast mechanisms. Documents loaded client-side can also send data back to the server, or to other entities on the XMPP network.
The originating server may also make RPC calls to documents loaded on the client. Client documents may make RPC calls to the server, or to other entities on the XMPP network.
In theory, servers may act as clients, and clients may implement some server functionalities. In practice, there are several differences between the Gradient server software and the Gradient client software.
The server runs as a daemon/service and should - theoretically - always be available. The server-side stanza routing logic may be defined by the application/service provider.
The client is opened, closed, and directed in it's actions by a user. The client-side stanza routing is structured to prevent cross-document scripting and information leakage. The XMPP capabilities of the client-side DOM scripting environment are intentionally limited to prevent self-replication of XML documents across clients.
Currently, the only XML markup rendered on the client is Scalable Vector Graphics - SVG.
Where can I download all this?
The download page contains links to the current release of the software, and instructions on use. The source code is also available for download under the Apache 2.0 license.
What else can I find on this website?
There is small, open-ended and flexible application framework that lives in the context of a Java Servlet container, and assists in the construction of Gradient-based applications.
There is also technical documentation that explains what I did with XMPP, how to use the application framework, and the reasoning behind some of the more interesting design choices.
What can be done with this collection of software?
The following areas are all possible applications of Gradient:
- Interactive realtime infographics:
- lightweight GIS clients
- server-coordinated multi-user whiteboarding
- broadcasting/multicasting of realtime graphical information (e.g. financial charting, poll results, or map overlay data)
- ...dynamic hyperlinked drill-down enabled charts, graphs, timelines, etc.
The following applications are all possible in theory, but are not currently possible due to security restrictions deliberately imposed on the client software:
- P2P applications with vector interfaces:
- single and multi-player games
- p2p multi-user whiteboarding
- animated and/or interactive avatars for normal chat sessions
Put simply, the client is an open-ended, scriptable browser for vector-based dynamic hypermedia, with built-in support for messaging, RPC, and instant messaging, (but not forms), via Jabber/XMPP.
Learn more
The content on this website is broken down into sections as follows:
- Downloading the code
Download the client, the example server applications, the source code, etc.
- Technical documentation
Technical documentation that explains the extensions to XMPP, the client DOM environment, and how to write server-side apps.
- Planning
There's a whole loada stuff missing in the code at present, and bugs that need fixing.
- Table of contents
Table of contents for ex-337.net/gradient. Lists every page along with a description.
- Search ex-337.net
Search this website, or similar websites, or the web.
- About
The faces behind the code.
© 2006. Some rights reserved. Author: Ian Sollars.