aigents / aigents-java

Aigents Java Core Platform
MIT License
29 stars 12 forks source link

Desktop/Server Graph Rendereder #32

Open akolonin opened 4 years ago

akolonin commented 4 years ago

Task: We need to have Aigents Graphs rendering framework https://blog.singularitynet.io/graphs-part-3-aigents-graph-analysis-for-blockchains-and-social-networks-142fc8182389 present for Aigents Web version https://github.com/aigents/aigents-java/blob/master/html/ui/aigents-graph.js https://github.com/aigents/aigents-java/blob/master/html/ui/aigents-gui.js https://github.com/aigents/aigents-java/blob/master/html/ui/aigents-map.js ported to the Aigents Desktop and Server version https://github.com/aigents/aigents-java/blob/master/src/main/java/net/webstructor/gui/App.java having some UI/UX design decisions discussed and updated along the way. We may re-use UI/graph rendering Java code from Webstructor project http://webstructor.net/ (which will have to be open-sourced along the way)

Reason: There is a capping limit on the number of transactions returned by the server to the web client (because web client just hangs rendering more than a few thousand transactions).

Design: It may be implemented as A) Server library serving huge graphs rendering to any canvas (based on https://github.com/aigents/aigents-java/blob/master/html/ui/aigents-graph.js and code from http://webstructor.net/) B) Desktop GUI presenting canvas to the graph renderer and user interaction combining both graph rendering/interaction paradigms currently present in Aigents Web client (https://github.com/aigents/aigents-java/blob/master/html/ui/aigents-gui.js and https://github.com/aigents/aigents-java/blob/master/html/ui/aigents-map.js) C) Client-server protocol enabling to render huge graphs in png/svg file and rendering them on wen client as png/svg images. PNG/SVG should be likely a configurable option (because SVG would not work for huge graphs over the web anyway).

Option: Support for 3-dimensional graphs may be implemented based on http://webstructor.net/ code.