Simple, powerful visualization - graphics

I am looking for a tool/framework to do some simple, yet rather intensive visualization.
I have ~10000 points in a 2D space. All I need to do is plot these points, then have them animate from place to place on a second by second basis. Up until ~1000 points I was able to achieve this using Raphael.js in a web-browser, however I need a more powerful solution now.
Does anyone have any ideas where I should be looking for such a tool?
Preferred interface languages: Ruby, C, Java, Haskell or a REST API

You could give Processing a try. If you're familiar with Java and C the processing syntax should be comfortable. Alternatively there is a JavaScript version, processing.js you could try.

TK -- typically used with Tcl. A very simple cross platform GUI scripting language. I have been using it successfully for a variety of 2D UIs capable of displaying 10e6+ shapes on a canvas and have recently used it for C++ heap map visualizer GUI. Lots of cut/paste code fragments available on the wiki page. There are multiple ways to use it from within C++, including SWIG-based binding.

Related

Haskell `ncurses` library

I would like to use a text-based UI in my Haskell program. I found some bindings for the ncurses library (see also hscurses or ncurses, which one to use?). The hscurses and nanocurses packages are just simple wrappers around the C library, while vty isn't very well documented and a bit ugly (for example mixing snake_case and CamelCase).
The ncurses library on Hackage looks much more pretty and provides API which nicely fits Haskell. The problem is that it doesn't seem to implement some crucial features, like resizing or refreshing the windows.
So my question is:
is there any other Haskell text UI library, either ncurses-based or not, which I missed?
if there isn't anyone, is it possible to extend the ncurses Haskell library to at least support window refreshing and resizing? (this should be probably consulted with the project owner, but I need the solution quickly)
EDIT:
I finally used nscurses without windows (and panels) to avoid the troubles with refreshing them. I had problems with output to bottom-right corner of a window (a very similar issue was reported for Python's ncurses binding). I solved it by not writing there :).
Have you looked at vty-ui? It has a very nice user manual with lots of examples. I believe it's essentially a wrapper around vty.
I've used nanoncurses and hscurses succesfully, my hmp3 app has a binding that was the basis for nanocurses.
No matter what you probably will want a nice high level API. hscurses does have a box abstraction at least.
You'd be fine going with hscurses.
There is another good choice for Text-based user interfaces in haskell;
Brick is written by jtdaugherty, the same person that developed vty-ui which is Deprecated now.
The API is Declarative, which is Better for Presenting a language like Haskell.
also the Documentation was great and complete.

Interactive Graph and Tree visualization for Desktop Application in Haskell

I have seen that there are bindings to graphviz, but it appears to just work with the Dot language and so I'm assuming that it would be more appropriate for static visualization. We have more of a dynamic, often updated, interactive need for automatic laying out and working with graphs and trees. Is there an appropriate library for such a thing in Haskell?
I need something that will work on at least both Linux and Windows
There are bindings to ubigraph, a closed source graph visualization program/library that has a free-ware version available for download. Ubigraph is interactive, fairly fast, and really damned easy to use given the hubigraph bindings - see an old answer of mine for a code example.
This appears to come the closest I was able to find so far:
http://hackage.haskell.org/package/graph-rewriting-layout-0.4.4
I also ran across this:
http://www.haskell.org/pipermail/haskell-cafe/2009-April/060496.html

Fast Interactive force-directed graph layout engine

I need a framework/library which will enable me to develop a realtime interactive graph simulation. The user must be able to dynamically add nodes and edges. I have found Prefuse and its force directed layout and I really like it. But it is not fully thread-safe, and doesn't perform all that well -- maybe it has problems with big graphs?
Are there some decent alternatives? I know about Flare, but I have no desire to learn ActionScript and would rather stick with c++/java/c#.
yFiles is a good commercial library (Java, C#, ActionScript, Javascript versions available) for interactive graph visualization, that supports wide range of layouts, and has no problems showing very big graphs. You can test its capabilities quickly by trying yEd, which is based on yFiles.
The question is a bit old but still let me introduce another commercial option for C#. GraphX for .NET PRO is capable of rendering thousands of vertices and edges simultaneously and supports variety of force-directed layouts. There is also free open-source version which is less performant but supports easy styling features.

Is there a good interactive 3D graph library out there?

I'm looking for a library that will layout and display graphs (i.e. network diagrams, not charts) in 3D, with some interactivity like selecting and dragging nodes, rotating the display etc. I would like to do this in a web page so Javascript or Flash are preferable, I'd also consider Java.
Having looked myself I realise the options are very limited so I'm interested to hear of any such libraries regardless of language or interactivity, even if they don't run in a browser. 3D is essential though, there are other questions on this site convering 2D libraries.
Update: please, stop adding details of 2D graph libraries. As the question states, I'm only looking for 3D libraries and there are other questions covering 2D graphs.
Walrus
Pros: great looking interactive 3D graph library, in Java.
Cons: not actively maintained, last update in 2003.
(source: caida.org)
It's C++ & SDL/OpenGL, but you might find Forg3D of interest (see also this paper).
I have no experience with it myself.
You may find this useful:
Processing is an open source
programming language and environment
for people who want to program images,
animation, and interactions.
WilmaScope is a Java 3D network editor. Nice screenshots here and here.
Starlight is a powerful 3D visualization tool I used once, several years ago (2005?) for a project. I remember it being quite powerful at the time. Then I was not concerned with a web UI. It is still actively maintained and has a separate non-government entity to handle commercial licensing.

Best thing for 3D and raytracing

I want to play around with some graphics stuff. Simple animations and things. I want to fool around with raytracing too. I need help finding a library that will help me do these things. I have a few requirements:
Must be able to do raytracing
Must be for a high level language (python, .NET, etc.). Please no C/C++
Must have good documentation, preferably with examples.
Does anyone know of a good library i can use to fool around with?
Have a look at blender.org - it's an open-source 3d project with python scripting capabilities.
First thing that come to my mind is the popular open source P.O.V Raytracer (www.povray.org). POV scenes are defined entirely with script files, and some people made Python code to generate them easily.
http://code.activestate.com/recipes/205451/
http://jabas-unblog.blogspot.com/2007/04/easy-procedural-graphics-python-and-pov.html
I'm not aware of any libraries that satisfy your request (at least not unless I decide to publish the code for my own tracer...).
Writing a tracer isn't actually that hard anyway. I'd strongly recommend getting hold of a copy of "An Introduction to Ray Tracing" by Glassner. It goes through the actual math in relatively easy to understand terms, and also has a whole section on "how to write a ray tracer".
In any event, a "library" isn't all that much use on its own - pretty much every ray tracer has its own internal libraries but they're specific to the tracer. They typically include:
a base class to represent 3D objects
subclasses of that for each geometric primitive
vector and matrix classes (3D and 4D)
texturing functions and/or classes
light classes of various types (point light, spot light, etc)
For my own tracer I actually used the javax.vecmath packages for #3 above, but had to write my own code for #1 and #2 based on the Glassner book. The whole thing is well under 2k lines of code, and most of the individual classes are about 40 lines long.
I believe there are few people putting together ray-tracers using XNA Game Studio.
One example of this with code can be seen over at:
Bespoke Software ยป Ray Tracing - Materials
The well developed raytracers that are open source are
Yafray
Povray
For realtime 3D (it will be language dependant of course) there is JMonkeyEngine (Java) not sure whether that meets your "high level language" requirement.
You could consider a 3D game scripting language too, like GameCore or BlitzBasic

Resources