L3DT users' community
Large 3D terrain generator

New 'ZeoGraph' plugin

Any and all chit-chat regarding L3DT.

New 'ZeoGraph' plugin

Postby Aaron » Fri Jul 03, 2009 6:35 am

Hello Everyone,

I'd like to take a moment to ask for your feedback on a new plugin I'm writing for L3DT. It's called ZeoGraph, and it is a filter graph interface for performing complex, customisable calculations using a collection of connected 'filters'. For example:

Image

The ZeoGraph plugin is included in the latest developmental build of L3DT Professional (that's v2.7 build 17), and you can open the ZeoGraph interface using the 'Extensions->ZeoGraph->Show window' menu option. For more information (and pics), please refer to the plugin announcement in the dev weblog, or to the on-line user guide.

Whilst I think the plugin is at release quality (more or less), it is not feature complete insofar as there are still many filters to be implemented. Nonetheless, I'd love to get your feedback on what you like and don't like about ZeoGraph, and what changes or additions should be made before it's included in the next stable release of L3DT. If you'd like to offer any feedback, please reply in this thread.

Best regards,
Aaron.
User avatar
Aaron
Site Admin
 
Posts: 3696
Joined: Sun Nov 20, 2005 2:41 pm
Location: Melbourne, Australia

Postby David Walters » Fri Jul 03, 2009 1:48 pm

This looks like fun - I've been tracking this on your dev log and I'm keen to finally get a chance to try it out tonight.

In the mean time, one thing you could do to make it more visually exciting is to have curved connecting lines. I mention this because I recently solved the problem myself when trying to replicate the connectors in the ICE visual editor for XSI ( http://www.softimage.com/products/xsi/ice/imgs/Mulcor_Burning_Forest.jpg ) and I thought I'd share.

The solution is simply to draw a Bèzier curve between A, B such that the control points lie at the mid point on the x axis, running along the y0 and y1 parallels.

ie.

A = x0, y0
A' = x0 + 0.5*(x1-x0), y0
B' = x0 + 0.5*(x1-x0), y1
B = x1, y1

PolyBezier( HDC, { A, A', B', B }, 4 )

Hopefully someone will reply with something more functional :wink: but curves do look kinda cool and the first bite is with the eye!
David Walters
Doyen
 
Posts: 129
Joined: Fri Apr 24, 2009 1:10 pm

Postby David Walters » Thu Jul 09, 2009 7:16 am

Hi, so I finally had time to try the ZeoGraph plugin and I'm impressed. Here's a bit of quick feedback:

----

* I like that running the graph is very quick and the system clearly seems very powerful.

* It felt a bit weird without tool-tips on the toolbar, but I'm sure they'll be coming along soon. Also I think the Run button should be a triangle :P

* The filters, I thought, could benefit from being more dumb / single purpose. So, where you have ScalarMath which is powerful - I was looking for Multiply which does one thing. If you were to expand this math filter into several it would aid finding the one you wanted, and also make the graph view clearer. In the current plugin you have to double click the options button to see what sort of scalar operation it's doing - this could get awkward for large graphs.

* A lack of scroll bars, or some other panning method (LMB-drag on empty space?), made larger graphs hard to work with and you can lose nodes if you shrink the window down.

* I would prefer SetProjectMap to have a combo box of valid map types, and create SetCustomMap which gives you the string option as you have it now. I can't really remember what the mnemonics are for each map! and typically I wouldn't want to make a custom one. I guess a similar suggestion goes for GetProjectMap.

* The save button should probably do a 'save as' if I've not previously saved before. Or just be greyed out.

* Ctrl-click for multiple selections would be very useful for rapidly managing portions of a graph. Functions such as "select hierarchy" and "expand selection" (select all filters connected to the current selection set) would complement that to quickly isolate an entire graph.

----

I have to go to work now, and I'm sorry if there's an abundance of picky little things. The underlying quality is very high, the thing works and a lot of the remaining work is just for usability really! Good job making such a radically different map generation scheme - it's good to know you've not just settled on one way of doing things 8)
David Walters
Doyen
 
Posts: 129
Joined: Fri Apr 24, 2009 1:10 pm

Postby Aaron » Thu Jul 09, 2009 12:11 pm

Hi David,

1) Okay, I'll change the run button to a triangle, as per the VCR/casette metaphor. I was going for the go/stop traffic light metaphor, but I think your probably right as to which is more pervasive these days.

2) The tool-tips are on the to-do list. The ZeoGraph window is not derived from a CFrameWnd, so it doesn't automatically get the MFC tooltip handling magic. I'll add this manually when I get the chance / work out how.

3) I agree that ScalarMath is too difficult to 'discover'; I'll split it into add/subtract/multiply/etc. I'll also allow users to rename filters (i.e. change text displayed in filter title) so that it's easier to remember which filter is doing what.

4) Scrolling is definitely on the to-do list, along with zoom. Thanks for reinforcing my suspicion that this is essential for release.

5) I'll have a look at Set/GetProjectMap, as I agree that it's too hard to remember the map name mnemonics.

6) The save button does indeed do a 'save as' when not previously saved before. However, by default the ZeoScript automatically loads the 'default.zgraph' graph file when the window is opened, ostensibly to give new users something to look at. Thus, since the graph has actually been saved before (as default.zgraph), if you modify the default graph and hit save it will save over the default file. It all works properly if you clear the graph using the 'new graph' option, as any subsequent call to 'save' will invoke 'save as' for the new graph.

I'll change this so that if the user attempts to save over the default file (unintentionally, probably), they will be prompted to enter a filename as if the user hit 'save as'.

7) At this moment, there aren't a lot of options that could be used on more than one filter ('delete', 'disconnect', and 'move', I suppose). Hence I'm not quite sure I see the usage case for multi-selection of filters. I'll nonetheless put it on the to-do list.

Thanks again for the feedback, it is most appreciated. I'll try to post an update to ZeoGraph in the next week with some of your suggestions included.

Best regards,
Aaron.
User avatar
Aaron
Site Admin
 
Posts: 3696
Joined: Sun Nov 20, 2005 2:41 pm
Location: Melbourne, Australia

Postby David Walters » Thu Jul 09, 2009 2:46 pm

Hi, thanks for reading my suggestions.

aaron wrote:3) I agree that ScalarMath is too difficult to 'discover'; I'll split it into add/subtract/multiply/etc. I'll also allow users to rename filters (i.e. change text displayed in filter title) so that it's easier to remember which filter is doing what.

Renaming is a good idea too, that'll really help. Especially if you were to merge two graphs.


aaron wrote:4) Scrolling is definitely on the to-do list, along with zoom. Thanks for reinforcing my suspicion that this is essential for release.

Yeah, I image perhaps having two or three different graphs - or just one really ambitious one - would easily fill the window.


aaron wrote:6) The save button does indeed do a 'save as'

Ahh, my mistake! :oops: Maybe, you could add the filename into the window caption too?


aaron wrote:7) At this moment, there aren't a lot of options that could be used on more than one filter ('delete', 'disconnect', and 'move', I suppose). Hence I'm not quite sure I see the usage case for multi-selection of filters. I'll nonetheless put it on the to-do list.

My primary motivation for asking for this was related to layout - it seemed like a useful ability to select a whole graph or long sub-chain and move it out of the way of another chain / graph you're constructing. Not really that important as you could do it by hand - but I thought I'd mention it now in case it becomes impossible in the future, or some other action emerges. But I agree that move, delete and disconnect are probably it functionally wise.


aaron wrote:Thanks again for the feedback, it is most appreciated. I'll try to post an update to ZeoGraph in the next week with some of your suggestions included.

You're welcome!
David Walters
Doyen
 
Posts: 129
Joined: Fri Apr 24, 2009 1:10 pm

Postby Aaron » Sun Jul 12, 2009 1:17 pm

Hi David,

I've just uploaded L3DT v2.7 Pro build 20, which includes an updated ZeoScript plugin with several of your recommendations implemented, plus a couple of other changes:
  • The options windows for the 'GetProjectMap' and 'SetProjectMap' filters lets the user choose the map name from a list of values, and allows custom map names using the '[other]' option.
  • The 'GetProjectMap2' and 'SetProjectMap2' filters allow users to directly get/set maps using a string input pin for the map name mnemonic.
  • Filters can be renamed.
  • The 'ScalarMath' filter is gone, and replaced by 'Add', 'Subtract', 'Multiply', 'Divide', 'Power', 'Min' and 'Max' filters.
  • You can no-longer connect pins, edit filter options, create new graphs, load graph files, etc, when the graph is running.
  • The start and stop buttons have been changed to a green triangle and a red square, respectively.
  • Clicking on the 'start' button when the graph is already running will now stop the graph (the button acts as a toggle).
  • The default graph file that is loaded when ZeoGraph is first opened has been renamed 'Start.zgraph' (was 'Default.zgraph', which may be a bit cryptic for new users).
I'll update the userguide to reflect these changes shortly.

Maybe, you could add the filename into the window caption too?


Er...this was already implemented (e.g. the title was 'ZeoGraph - Default', when the 'default.zgraph' filter was loaded).

Anyway, please let me know if you find any problems or would like to make any further suggestions, and thanks again for the feedback.

Cheerio,
Aaron.
User avatar
Aaron
Site Admin
 
Posts: 3696
Joined: Sun Nov 20, 2005 2:41 pm
Location: Melbourne, Australia

Postby Aaron » Tue Sep 08, 2009 11:16 pm

Hi Everyone,

I've uploaded another update of ZeoGraph, which is included in the installer for L3DT Pro v2.7 build 28, from the 9th of September 2009.

This update includes scroll bars for panning the canvas, and a link in the 'add filter' window to the filter reference page, which explains what each filter does. Also, I've added a button to the L3DT toolbar for launching ZeoGraph.

This is likely to be the last update of ZeoGraph before the next version of L3DT is released (v2.8). However, if you find any problems or would like to make any suggestions, please feel free to do so now.

Cheerio,
Aaron.
User avatar
Aaron
Site Admin
 
Posts: 3696
Joined: Sun Nov 20, 2005 2:41 pm
Location: Melbourne, Australia

Postby metalliandy » Wed Sep 09, 2009 9:29 am

Nice work Aaron!

Keep it up mate :)
metalliandy
Doyen
 
Posts: 103
Joined: Tue Mar 20, 2007 11:28 am


Return to General discussion

Who is online

Users browsing this forum: No registered users and 3 guests

cron