Progress Report?

Discussion about the next release of JPatch, with support for subdivision surfaces (SDS).

Re: Progress Report?

Postby dcuny » Thu Oct 30, 2008 10:20 pm

Thanks for the update!

Any screenshots (of the HUD, etc.) would be nice. :P
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Progress Report?

Postby sascha » Fri Oct 31, 2008 9:24 am

Sure.

Here's a screenshot of the reworked UI for the morphs in the sidebar:
Image
As you can see, the targets panel is now a table with all the information in one place.
There's also a dialog when creating a new morph, it's asking for the name (which can be changed afterwards of course) and the number of dimensions (which is fixed and can't be changed after the morph was created).

The HUD isn't complete yet, but it seems to work, so I've stopped working on it to focus on more important things. Nevetheless, here's an early screenshot:
Image
In the top left corner (actually outside of the hud window right now) there's a test 2D slider (which is fully functional and bound to a morph).
In the center there's a hud window with minimize, maximize and close buttons (the mouse was over the maximize button when this screenshot was taken, so it's highlighted). The idea is to have multiple huds which can be enabled/disabled per viewport and of course moved, resized, minimized and closed. Once it's closed, you'll have to select it from a popup menu to make it visible again. Minimized viewports will show in a kind of "task-bar" on the bottom of each viewport and can be restored from there with a double-click. There'll also be a quick-button or keybord shortcut to switch on/off the entire hud-overlay (since the huds consume the mouse-events, you'll not want them visible all the time). Huds are named (the name will be drawn in the "window border"), and the idea is that you can add any number of controls (e.g. sliders) to huds in a "design mode". So you could create e.g. one hud with sliders to controll the body (arms, legs, etc), one for facial expressions, etc. When animating a scene with two characters, you could then e.g. display all four HUDs in a single viewport and use the sliders - since its semi-transparent, you'll see the changes "through" the huds, so you don't need an extra viewport for the sliders.

What do you think?
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Progress Report?

Postby dcuny » Fri Oct 31, 2008 8:30 pm

It looks like it'll be fun to play around with.

The The evolution of Blenders User Interface talk from the Blender 2008 Conference talked a bit about the Blender UI and possible changes in the future.

One possible change was the removal of modal dialog boxes such as the Create new morph kind you've got. Instead, the presenter suggests just creating the object, and letting the user edit the default attributes (such as name and dimensions). Instead of a Cancel button, the user would select Undo. (Handling multiple dimensions might be tricky though).
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Progress Report?

Postby sascha » Fri Oct 31, 2008 8:45 pm

One possible change was the removal of modal dialog boxes such as the Create new morph kind you've got

Yes, that's one of my goals too. I think I've been quite successful until now, because this is the very first model dialog I've introduced (and there is no menu too).
I could get rid of the morph dialog by using a slider,textfield or combobox to select the number of dimensions new morphs will have. But as this is something that can't be changed later, I think it's ok to use a dialog for that.

Some operations need a dialog - a somewhat extreme example: would you like to save to a default file and rename that file later? Or load a default file - all you need to do is to symlink the file you want beforehand? I guess not, so the file dialog actually makes a lot of sense :-)
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Progress Report?

Postby dcuny » Sat Nov 01, 2008 6:45 am

I realize that factoring out the dimensions option is tricky. Normally, you'd try pushing the option to the New button, so there would multiple options, such as New 1D Morph, New 2D Morph, and so on. And it sort of begs the questions as to whether the results are worth the work it takes.

Then again, I'm not entirely sold on the idea that there are 2D morphs. I can visualize multiple morphs being assigned to the axis of a 2D controller, or the position being used to crossfade between different morphs. But a single morph having 2D parameters? I'm not so sure I can wrap my brain around it. I'll wait for JPatch to come out and play with what you've got, but I suspect that tying a single morph to multiple dimensions is a bad thing.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Progress Report?

Postby sascha » Thu Nov 06, 2008 11:52 am

I'm still fixing things that are currently broken but used to work in earlier versions, which is - as you can imagine - quite annoying. Nevertheless, it has to be done.
Just wanted to let you know that I'm working on it...
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Progress Report?

Postby dcuny » Fri Nov 07, 2008 1:42 am

Thanks! :)
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Progress Report?

Postby dphamhi » Sun Nov 30, 2008 5:49 pm

Sasha, David,

just a note to let you know that there are fans out here who are eagerly waiting for your wonderful work.
It may have been a littlme bit quiet on the discussion threads but we're ( at least I am ) watching intensely ;-)
Having been once ( a long time ago ) a young gfather, I can easily understand Sasha's experience with your baby.
Like David said, anything we can do to help ?

Thanks for your personal effort and your ingenuity !
Cheers,
Duc
~ dphamhi ~
dphamhi
 
Posts: 21
Joined: Mon Aug 23, 2004 8:40 am
Location: Paris

Re: Progress Report?

Postby sascha » Sun Nov 30, 2008 9:10 pm

Thanks for the encouraging words and your offer to help, but right now I'm afraid there's little you can do but wait.
Many things in the new, SDS based version of JPatch look really promising, and I can ensure you that I won't abandon the project.
Still, there are a few things missing that requite my full attention, and finding time to concentrate is quite difficult these days.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Progress Report?

Postby sascha » Tue Jan 20, 2009 11:23 am

I'm still working on undo redo support, which is extremely complicated for hierarchical models:
If a hierarchical vertex was modifier, it is crucial that all undo/redo operations that potentially remove this vertex ensure that exactly the same vertex is reconstructed later, otherwise the hierarchical modifications would lose there connection to that vertex. The same thing is true for all the vertices, faces and edges needed to "navigate" to that hierarchy vertex.

Now, it's not possible to keep track of all vertices that have been created - the user might want to take a look at the SDS at level 3 just to see if it looks "smooth", and later works only with a level-1 representation. It would unnecessarily consume a lot of memory to keep tracks of these temporary level-2 and level-3 vertices in the undo-buffer - since they can be created and destroyed on the fly without affecting the model.

So basically there are two types of sub-faces now, the ones automatically created by JPatch for a "preview" of the SDS, and the ones the user created for hierarchical modeling. I think I will also allow to edit these auto-created hierarchy-vertices, but JPatch will change them into user-created ones in the background in order to ensure undo/redo functionality.

I've been working on changing the datastructures involved to support that since Christmas - it's quite complex and I'm having difficulties keeping everything in mind - but slowly I'm getting a grip on it.

To ease debugging (browsing through tons of console-output is getting tiresome) I've added a debugging object-explorer. The same thing was of great help when debugging the patch-based versions, and I wonder why I haven't added it earlier. Here's how it looks like, showing a single selected half-edge on level 1:

explorer.png

It's only for debugging, you won't normally use that and it will disappear in the final version. All the colored fields are "hyperlinked" to that objects.

I just wanted to let you know that I've started to do nightly coding sessions on a regular basis again, and that there is progress. I hope to be able to have something to show soon...

PS: I've coded the entire "object explorer" in less than two hours. It's still surprising how easy it is to hack some simple GUI in Java, and how complicated it gets as soon as the defaults the framework provides are insufficient and you have to write your own widgets. I wonder if QT is better in that regard.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Progress Report?

Postby rjh » Tue Jan 20, 2009 5:37 pm

I just wanted to let you know that I've started to do nightly coding sessions on a regular basis again, and that there is progress. I hope to be able to have something to show soon...


WOO WHOOO ! ! ! (HE SCREAMS WITH A 500 PIECE BRASS BAND PLAYING IN THE BACKGROUND)

That's very good to hear Sascha ... am anxious to see what you've been doing.

Rob
rjh
 
Posts: 179
Joined: Thu Dec 30, 2004 10:33 pm

Re: Progress Report?

Postby dcuny » Wed Jan 21, 2009 8:03 am

I'll also echo Rob's enthusiasm. It's good to hear progress being made! :D
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Progress Report?

Postby dcuny » Mon Mar 02, 2009 6:52 pm

Anything new? :P
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Progress Report?

Postby sascha » Wed Mar 04, 2009 7:51 pm

Still debugging this undo/redo nightmare. It's incredible how much more complicated things can get when you want to undo/redo them. There's the trivial approach I used in earlier versions (to simply record all changes made to any object), but this won't work here. At higher subdiv-levels there might be tens of thousands of controlpoints that can simply be rebuilt if necessary, so there's no need to store anything related to them in undo-events (failing to do so would occupy large amounts of memory for completely unnecessary undo-events).

Its also very difficult to write test-code here, since the test code is perhaps even more complex than the system under test (and thus even more error-prone, and writing test code to test test code doesn't look like a good idea).

So I'm currently working on some debugging tools that allow me to ensure that undo/redo will work in all cases. One of the most interesting (and reusable for other projects as well) is a kind of a live object browser that uses reflection. There's no need for breakpoints, you can simply inspect every object while the application is running, and references to other objects are "hyperlinked", so you can easily jump from one object to the next.
It's NOT threadsafe, but OK for all applications that only use a single thread (or, like JPatch, run on the Event-Queue).
I've made it with reusability in mind. The default "Inspector" simply displays all field-names (yes, private fields too) and their values for any given object. But you can register special viewers for certain classes - I've added some to display the contents of arrays, collections (lists, sets, etc.) and maps (like hashtables). The same mechanism is used to register even more specialized viewers, e.g. for the Undo-Manager to simply list all undo-events on the stack and for an undo-event to list all the individual edits (which then are viewed by the default viewer, thus showing all field values).

I really like it, it's much more convenient than using the debugger with breakpoints, and of course also more convenient than tons of console output. As I said, it's quite general purpose (the only limitation is that it won't work well with multiple threads), so I plan to release it as a standalone tool some day.

I hope that some day soon I'll be able to spend more time for JPatch, right now it's limited to a very few hours per week - but I guess you know the feeling. So the only thing I can promise right now is that I won't abandon the project - it's just moving through a slow phase... (gives the term "minimal development" in this topic's title an entirely new meaning ;-) )
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Progress Report?

Postby dcuny » Thu Mar 05, 2009 7:11 am

I'm glad to hear you're still working on it. I understand the limited hours in the day - I can bounce between complete apathy and complete fanaticism on a project. What's irritating is how little control I've got over it - sometimes a project just has to sit around for a while while I work on other stuff. :?

I'll probably be buried for the next month or two on other projects, but when I get my head up for air (and time for JPatch) I'll start bugging you again about delivering something we can play with - even if it's buggy or has broken features.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

PreviousNext

Return to JPatch SDS Minimal Development

Who is online

Users browsing this forum: No registered users and 1 guest

cron