STL visualization library proposal

The C++/STL library does not provide a quick and easy way for a visualization of numerical data to occur, and neither does Boost. I propose writing a minimal SVG class that can write in the SVG (Scalable Vector Graphics) format along with helper functions to help users visualize data stored in arrays as well as common STL containers. There will also be a subclass, svg_graph, that acts as a user interface for the graph data. The user will be able to customize how they would like the graph to be styled, and the data to be displayed. Since the SVG format is recognized by all major browsers, these could easily be incorporated with Boost documentation in place of .jpg or .gif files. The users would be able to change settings in a stream-like fashion. A sample of how the user might be able to use the class is as follows: svg_graph my_graph("test.svg"); //customize visualization settings my_graph<<line_color(black)<<point_color(blue); my_graph<<x_range(-10, 10)<<y_range(0, 5); my_graph<<plot_range(iterator1_begin, iterator1_end); //change values for second set of data points my_graph<<line_color(gray)<<point_color(yellow); my_graph<<plot_range(iterator2_begin, iterator2_end); //write output to file my_graph<<write(); This syntax is easy enough for a neophyte in their beginner C++ class to be able to plot data from their statistics class on a graph, and more advanced options can be provided for power users, such as providing streams other than filenames.

[mailto:boost-bounces@lists.boost.org] On Behalf Of Jake Voytko The C++/STL library does not provide a quick and easy way for a visualization of numerical data to occur, and neither does Boost. I propose writing a minimal SVG class that can write in the SVG (Scalable Vector Graphics) format along with helper functions to help users visualize data stored in arrays as well as common STL containers. There will also be a subclass, svg_graph, that acts as a user interface for the graph data. The user will be able to customize how they would like the graph to be styled, and the data to be displayed. Since the SVG format is recognized by all major browsers, these could easily be incorporated with Boost documentation in place of .jpg or .gif files.
Hi Jake, That sounds really cool, in fact we could put something like that to use now. Are you just brain storming or have you begun work on something already? Regards, Matt Scanned by McAfee GroupShield {X3BTB534}

Matt, I'm in the application process for Summer of Code 2007 and put together a rapid prototype of the concept. So while I've begun work on the idea, it's in its infancy. If you'd like to see the prototype code, I can post it to the Sandbox Vault or provide a link. However, since it's still in the design/redesign stages, feel free to make suggestions for features you'd like to see! Features I intend to add include labels of data points, smart drawing + labeling of axis intervals, the ability to include a least-squares regression with the data, ability to highlight or label min/max values. Right now it only supports vector<double>, which was used to iron out the interface, but will quickly be changed to support iterators for generic STL containers, much as <algorithm> functions do. As long as the user provides a pointer to a function to convert an object to a floating point value, they will be able to graph any container of any object. As a reference, the current prototype's capabilities are indicated in the following .svg file. This shows a graph of the functions f(x) = .5x and f(x) = x^2 graphed from -10<=x<=10. This is not the nicest "window" with which to view it, but it demonstrates that the user can change it at his/her whim. http://www.tcnj.edu/~voytko2/first.svg So you should not have to wait much past the summer for a working version of this program! Jake On 4/3/07, Matt Doyle <mdoyle@a-m-c.com> wrote:
[mailto:boost-bounces@lists.boost.org] On Behalf Of Jake Voytko The C++/STL library does not provide a quick and easy way for a visualization of numerical data to occur, and neither does Boost. I propose writing a minimal SVG class that can write in the SVG (Scalable Vector Graphics) format along with helper functions to help users visualize data stored in arrays as well as common STL containers. There will also be a subclass, svg_graph, that acts as a user interface for the graph data. The user will be able to customize how they would like the graph to be styled, and the data to be displayed. Since the SVG format is recognized by all major browsers, these could easily be incorporated with Boost documentation in place of .jpg or .gif files.
Hi Jake,
That sounds really cool, in fact we could put something like that to use now. Are you just brain storming or have you begun work on something already?
Regards, Matt
Scanned by McAfee GroupShield {X3BTB534} _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

On 4/3/07, Jake Voytko <jakevoytko@gmail.com> wrote:
As a reference, the current prototype's capabilities are indicated in the following .svg file. This shows a graph of the functions f(x) = .5x and f(x) = x^2 graphed from -10<=x<=10. This is not the nicest "window" with which to view it, but it demonstrates that the user can change it at his/her whim.
http://www.tcnj.edu/~voytko2/first.svg
So you should not have to wait much past the summer for a working version of this program!
Ok, I'm hooked =) ~ Scott McMurray

[mailto:boost-bounces@lists.boost.org] On Behalf Of Jake Voytko Subject: Re: [boost] STL visualization library proposal
Matt,
I'm in the application process for Summer of Code 2007 and put together a rapid prototype of the concept. So while I've begun work on the idea, it's in its infancy. If you'd like to see the prototype code, I can post it to the Sandbox Vault or provide a link. However, since it's still in the design/redesign stages, feel free to make suggestions for features you'd like to see!
I'll go over the code and your proposal as soon as I get some time and see what kind of feedback/suggestions I can make. Unfortunately time is at a premium right now :( but I'll get to it. Stick with it though, so far I like where your going! Matt Scanned by McAfee GroupShield {X3BTB534}

Take your time :) The main phase of Summer of Code doesn't even begin until May 28th, so you certainly have time. There's not even a guarantee that I'm going to be picked for Summer of Code, though I certainly have high hopes! Getting the prototype working was a lot of fun and gave me a lot of confidence that I can finish this project successfully by the end of the summer, and I hope the mentors see it the same way All things considering, I look forward to your suggestions Jake Voytko On 4/4/07, Matt Doyle <mdoyle@a-m-c.com> wrote:
[mailto:boost-bounces@lists.boost.org] On Behalf Of Jake Voytko Subject: Re: [boost] STL visualization library proposal
Matt,
I'm in the application process for Summer of Code 2007 and put together a rapid prototype of the concept. So while I've begun work on the idea, it's in its infancy. If you'd like to see the prototype code, I can post it to the Sandbox Vault or provide a link. However, since it's still in the design/redesign stages, feel free to make suggestions for features you'd like to see!
I'll go over the code and your proposal as soon as I get some time and see what kind of feedback/suggestions I can make. Unfortunately time is at a premium right now :( but I'll get to it. Stick with it though, so far I like where your going!
Matt
Scanned by McAfee GroupShield {X3BTB534} _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Jake Voytko wrote:
Take your time :) The main phase of Summer of Code doesn't even begin until May 28th, so you certainly have time. There's not even a guarantee that I'm going to be picked for Summer of Code, though I
As one of those mentors struggling to finish ranking and grading the applications, I'll just confirm that there's no guarantees. We had 225 applications this year for somewhere between 5 and 10 slots (not exactly sure how many Google will give us) -- so the competition is very tough. Unfortunately, like last year, some very qualified students with good ideas are *not* going to get a slot.
certainly have high hopes! Getting the prototype working was a lot of fun and gave me a lot of confidence that I can finish this project successfully by the end of the summer, and I hope the mentors see it the same way
The fact that you are willing to put your ideas out in the community for discussion is commendable and certainly distinguishes you from many other applicants. After last year, the mentors agreed that we should have had more community participation earlier in the SoC projects. Anyway, keep up the good work :-) Jeff
participants (4)
-
Jake Voytko
-
Jeff Garland
-
Matt Doyle
-
me22