1.0 Wish List

General discussion about JPatch

1.0 Wish List

Postby dcuny » Fri Feb 23, 2007 6:44 am

As JPatch currently stands, I think it's really close to being "alpha" stage usable. The addition of FK controls would probably do the trick, although I suspect that people would also want uv mapping of some sort. I would have sworn we'd have it by the end of August last year... But it didn't happen. :?

Now, I'm not complaining here. I understand that rewrites happen, and the SDS move is going to be really, really cool and all that.

With Sascha's recent "identity crisis" remark, I figured that I'd go over the features list again, to remind him exactly how unique JPatch is. Because it really is - it's the only free tool that I know of that focuses on the user experience. By all accounts, A:M got the workflow right, and I think JPatch nails it as well.

I've also got an Evil Scheme brewing (more on that later). But for now, here's my current "What I Hope To See In JPatch 1.0" list. Feel free to disagree. :)
  • Patch-Style Modeling: I rather like the patch modeling; I just hate getting boxed into a corner where I find I need a 5-point patch, but I can't make one work out. Some sort of hybrid that allows patch-style modeling would be great. I've pointed out LionSnake as a model that shows how that sort of thing might be possible.
  • Box Modeling: If you've got SDS, you've got to have box modeling. See Wings3d. My worry is that having to build up a new sort of modeler for JPatch will take a lot of time, and I'd rather live with a more limited modeler and be able to import Wings3D models, if I had to. I doubt others share the same opinion, though. :D
  • Rigging: I love the bones as they currently are.
  • Morphs: I'd like to see bone movement added to morphs, to support things like jaws opening, fists clenching, default poses, and so on. I also think Pose mode needs to be a seperate mode - it's just too easy to think you're in Edit mode, when you're actually in Edit Morph mode.
  • UV Mapping: This is on my 1.x list. It's an important, but not critical feature. LionSnake supports some simple UV mapping. I'll volunteer to have a look at creating a u/v mapping interface, if you want.
  • Shaders : Another 1.x feature. The current integration is a hack, but it works.
  • Constraints: Currently, only the Anchor constraint is implemented. I think it needs some re-thinking in terms of the UI. The other constraints are also on my 1.x list - important, but there are ways around them.
  • FK Animation: Currently, the only controls are sliders accessed via the Tree control. Add some screen based widgets, and bob's your uncle.
  • IK Animation: Full IK used to be a high priority item on my list, until I played with it with other programs. Invariably, the puppets would become tangled messes. I'll be happy with limited (i.e. two-link chains) for things like arms and legs, thank you very much.
  • Lipsync Support: This is the feature I'm responsible for, right? No comment. ;)
  • Compositing Layers: This is where you'd create a final image by layering several images together. It could be something as simple as adding a pre-rendered background to a scene, to creating a multiplane sort of shot. Probably a 2.x feature.
  • Post Processing: Adding subtitles, adjusting color, adding blur... I've got the code written for this, but I don't know if/how you want this integrated into JPatch, so I'll call it a 1.x feature.
Did I miss anything important?

All right, here's the point to my Evil Scheme. I want to be able to start animating in JPatch as soon as possible. Sooner, actually. So if I can pin Sascha down to a specific, usable feature set and convince him to put off less important stuff until later, I get my 1.0 "core" set of features sooner. And I'm a happy camper. 'Cause that's what it's all about, right? ;)

All right, it's not that huge if an evil scheme. My only real worry (at this point) is that box modeling could become a huge timesink. I agree that it's really cool, but it's the newest feature (other than SDS) that JPatch's got, so it's got the most number of unknowns.

I've got this feeling that once people start playing with the modeler, they'll see how cool it is, and start asking for more features. It'll be a great modeler, but I won't be able to do any animation. (Not that I'm doing any right now, mind you. :?)

So, as a sort of pre-emptive move on my part, I'll even offer to write a Wings3D importer, so people can have the yummy goodness of box modeling, and possibly shave a few months off the 1.0 delivery date.

Or is there some other task that I (or other people) can do to make this happen faster?
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Postby sascha » Fri Feb 23, 2007 4:35 pm

The problem with patches was not that I disliked patch modeling - it's just that it's very difficult to export the patch model to something that can actually be rendered (without cracks and creases).
Even if the problems with creases were fixed, the next problem is the "flat spot" problem, introduced by using "zero twist vectors" for the Bézier patches. My math skills are rather limited, so as far as I am concerned, I've given up :?

I agree with all of the other points, except
It'll be a great modeler, but I won't be able to do any animation.

The old animation module was my first approach (ok, ok - it was the second approach), and it proved to be a dead end. So there's no way around redesigning it, and much has already been done. Apart from that, the animator is completely independent of the model representation. In the new design it works using a scene graph and constraints, and a motion curve system that controls floating-point attributes. In theory it could be used to animate anything, even the background colors or font sizes in JPatch :wink:
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: 1.0 Wish List

Postby dcuny » Wed Mar 14, 2007 10:52 pm

I guess I should come right out and was "When will I be able to animate with the next version?"

The level of functionality for that is a bit lower than the 1.0 version. Let's say that the baseline for that is the current level of functionality in JPatch. Obviously, it would be nice to get additional tools (like editing controls in the viewports), but they aren't strictly necessary.

From what I gather, there are two main changes that have happened:
  • Moved to SDS. This potentially impacts all the modeling tools.
  • Rewrite of animation core. This impacts pretty much everything else.
Mind you, I'm not disagreeing that these things don't have to be done. I'm just trying to get a feel for how long it's going to be before JPatch SDS can be used to create animation. Here's how I've broken down the feature list; it could be wrong:
  • Modeling: Patch style, box modeler, import patch models... What's the plan?
  • Rigging: Adding bones, attaching control points.
  • Pose: Morphs, and perhaps bone movement, too.
  • Animator: The timeline graph.
  • FK Animation: Tools for rotating bones
What would be nice would be to have details as to what the "minimal" feature list for this will be. For example, will the minimal version of FK Animation have sliders to control bones, or viewport widgets?

A bar chart showing the progress on these features would be nice, too.

I'm not trying to tie you to a schedule here, I'm just trying to get a feel for how JPatch SDS is moving towards its target.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Postby sascha » Thu Mar 15, 2007 5:35 pm

You're right, moving to SDS took much longer than I expected. The main reason is that it was easy to implement on top of the Half-Edge data-structure, but turned out to be way too slow. Doing subdivision in real-time is pretty tricky, and it's good that I didn't know that before, otherwise I would not have attempted it.
Another reason is that I got this strange idea with hierarchical modeling, which was/is even more difficult to realize (but I think that this is a really important feature).

So, about the plan:
I will not touch the JPatch 0.5 code again, and I will not try to quickly hack in some features on top of it.
There are a few things missing in the SDS dicer (namely computing normals for infinitely sharp creases and edges), and once that's done I need to thoroughly document it.
I'd like to add the possibility to edit level-2 points, just as a proof of concept. I can postpone editing higher subdiv-levels until later then.

The next step is to add the usual manipulators (move, scale, rotate) - a walk in the park, and to add some box-modeling tools (shouldn't be that complicated). Once this is finished, JPatch should have a fairly decent SDS modeler.

Then I can focus on animation again. Much code is there, and for the rest I have a pretty clear picture in mind, so it basically needs to by typed ;)
This might sound a bit over optimistic, but I think I've learned my lessons from JPatch 0.1, 0.2, 0.3, 0.4, 0.5 - so meanwhile I should know how to write this.

About I time-frame:
That's a difficult question. I'd like to have a stable, tested version of JPatch (0.8 ) released by the end of 2007. It should feature a nice SDS modeler, U/V mapping and an animator with a scene-graph, constraints (including IK) and possibly the layered animation concept you've suggested. We'll see, it's done when it's done :P
Once the SDS modeler is starting to become useful I'll start with regular JPatch 0.7.x releases.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Postby dcuny » Thu Mar 15, 2007 8:41 pm

sascha wrote:You're right, moving to SDS took much longer than I expected.
Well, it had to be done, so there's no two ways around it. The same goes with moving forward from version 0.5 - it's something that's got to be done.

I will not touch the JPatch 0.5 code again, and I will not try to quickly hack in some features on top of it.
OK, I'll remember to stop asking.

I'd like to get Sunflow into the next major release. I'm convinced that it's already overtaken Inyo in terms of capabilities, and I'm pretty confident that I can retrofit Sunflow with any features people really miss from Inyo. There are a lot of people using it with various modelers, so a lot of the bugs should be knocked out of it by the time JPatch reaches the 0.7 release. You might want to put some thought into how it could be integrated into JPatch's viewports (or other renderers, for that matter).

The next step is to add the usual manipulators (move, scale, rotate) - a walk in the park, and to add some box-modeling tools (shouldn't be that complicated). Once this is finished, JPatch should have a fairly decent SDS modeler.
I'll suggest that you create a list of baseline features that you want for the modeler. Actually, this would be good for everything that's going to be in the 0.7 release:
  • It keeps people informed as to the goals, even those who don't browse the forums regularly.
  • It lets people set their expectations for the next release.
  • It helps prevent feature bloat.
  • It lets me research various upcoming features, so I can tell you how I want them to be implemented. ;)
I know that it's hard to put dates on things, so you might just use a bar chart for percent completed. With the next stable release is about a year away, it'll help show that the project really is progressing along.

Then I can focus on animation again. Much code is there, and for the rest I have a pretty clear picture in mind, so it basically needs to by typed
This is another place where listing features would be helpful. Otherwise, I'm going to start asking for this and that to be added into the timeline. If you can squelch my undo expectations ahead of time... Well, I guess I'll still whine incessently. :P

This might sound a bit over optimistic, but I think I've learned my lessons from JPatch 0.1, 0.2, 0.3, 0.4, 0.5 - so meanwhile I should know how to write this.
I think being an incurable optimist is a requirement to work on projects of this size.

I'd like to have a stable, tested version of JPatch (0.8 ) released by the end of 2007. It should feature a nice SDS modeler, U/V mapping and an animator with a scene-graph, constraints (including IK) and possibly the layered animation concept you've suggested. We'll see, it's done when it's done
Again, I think having a bar chart breaking down the features by "percent done", and a rough guide of milestones would be really helpful. You probably want some sort of rough date on the milestones, like Q4, or "late summer", so people can know when to check back with the project.

It's particularly good for projects with long delivery dates - people begin to lose interest in things when they don't see happen.

Besides, it gives you a reminder how far you've brought JPatch. :)
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Postby sascha » Wed Mar 21, 2007 4:18 pm

Ok, I've put together a preliminary "todo" list. It is very feature centric, I'll maybe add a few internal things that have no one-to-one mapping to a particular feature.

This is everything I'd like to have in 1.0 - some of the features won't make it into 0.7/0.8 though, and I'd like to add a mandatory/optional flag and possibly assign a priority to each feature.

Let me know if you miss something.
Code: Select all
sds representation and realtime display
   orthogonal display
   perspective display
   general half-wing representation of meshes
   infinitly sharp corners and creases, and "interpolateboundary" bahavior
   non-integer corner sharpness
   non-integer crease sharpness, varying crease sharpness
   dicing of hierarchical meshes
   rendering materials with basic material attributes

sds modeling
   assign materials to faces
   extrude/intrude tool
   lathe tool
   add/remove vertices/edges/faces
   split faces
   corner/crease tool
   editing of level-2 vertices and edges
   editing of level 3,4 and 5 vertices and edges

general tools
   lasso select
   rotate
   move
   scale
   mapping tools (e.g. u/v mapping)
   basic material editor

model import
   off
   obj
   jpt

model export
   sds
      rib
   polygon
      off
      obj
      pov
      internal API (Inyo, Sunflow)

rigging
   morph editor
   skeleton editor
   "smartskin" morphs
   automatic vertex to bone binding
   weighting tools
   poses (bone and morph combinations)
   pose-control widgets (as in "Stop staring")
   actions
   
animation
   scene graph
   constraints
      limits
      translate-like, orient-like, etc.
      rotate plane IK
   motion curve editor
   animation layers
   previz rendering (OpenGL)

audio
   synchronized sound playback
   lipsync editor
   simple audio editing

advanced
   rendering layers
   OpenEXR support
   post-processing effects
      layer compositing
      transitions
      motion blur
      focal blur
   material editor
      java shaders (Sunflow?)
      RSL shaders (RenderMan)
      GLSL shaders (OpenGL 2.x)
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Postby dcuny » Wed Mar 21, 2007 7:10 pm

A couple things, which probably aren't 1.0 features, but should be on a list somewhere:
  • Billboard Objects: Adding images of objects (such as trees) to the scene that always face toward the camera. This could either be done by having uv mapped rectangles that have transparency, or by adding it in post-processing.
  • Hair: I've got the basic physics code working, and it's pretty fast and stable.
I'll see if I can come up with anything else.

I'm not sure that poses and morphs should be separate. It makes sense for "smartskin", though.

What's an action? Is it different than an animation layer? I suspect that the two ideas are closely related (i.e.: an action can be created by selecting tracks and a time range from an animation layer. Will an action be a separate track in the timeline?

I'm guessing that implementing an action as an animation layer will give you more flexibility, since you can still tweak settings of a layer, by editing it directly, or adjusting the curve associated with it. For example, if you wanted a walk cycle using an animation layer, you'd set it to 'cycle', and then fade the cycle's strength curve in at the start of the walk, and fade it out at the end.

Will JPatch no longer import A:M models? I think that would be a sad loss.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Postby sascha » Wed Mar 21, 2007 7:35 pm

Billboard Objects

Agreed. But as you said, this can be done quite easily using a ractangle with a semi-transparent texture and some sort of orient-like constraint that rotates the object to always face the camera. I agree that there should probably be a shortcut in the UI to create such objects, but I wouldn't add it as a separate feature here (the list is right now more or less just a guidline for me).
Hair

Agreed, I forgot that.
What's also missing is
Code: Select all
Project management
    Workspaces and project directory structures (as in Eclipse)
    Local history with rollback functions (as in Eclipse)
    Collaboration tools
         Sharing of projects on CVS/SVN servers

I'm not sure that poses and morphs should be separate

Agreed, this is an implementation detail, I'm not yet sure how it will translate to the UI. From an implementation perspective a morph can move controlpoints (and probably bones too). A smartskin morph is attached to a bone (and is probably limited to move vertices only, to not run into a chicken-or-egg problem). A pose would be a stored set of pose-slider positions. It too could be presented as a "morph slider" in the UI, so you can fade in/out of a pose and use it as if it was a morph.
What's an action?

An action is like a little animation, but it's restricted to one model and is stored within the model file, just like a pose. The idea is that the user can drag'n'drop an action or pose from the model directly into the timeline. I haven't thought this through, but I think a walk cycle would be something that's stored as an action.

Will JPatch no longer import A:M models? I think that would be a sad loss.

You can't import all A:M models, some models will require some tweaking before they can be imported. So as long as there is no patch modeler built into the new version my approach would be to use JPatch 0.4 to import and tweak A:M models, save them in jpt format and import those files into JPatch0.7+
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Postby dcuny » Fri Mar 23, 2007 6:44 am

One important thing I forgot to mention: JPatch needs excellent documentation.

I say we steal the guy who does the AoI docs. :D
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

My wishes

Postby nine » Thu Apr 05, 2007 11:42 pm

I have been looking for Digital Puppetry in realtime with lip sync.
And I have always hoped for making dialogues - having the possibility to make some theater. Having a library with puppets/actors with preprogrammed movements. Just drop and drag the actions/movements on your puppet.

And why not have some type of standardisation? Everyone can contribute with clothes in the right size - trying to help each other to make some library of clothes and puppets. And perhaps someones helping each other can make a Shakespear play in 3D.

Why so interested in this?
I believe making 3D animations are not so easy and it is time consuming.

And I have hoped for everyone being able to make something in 3D and playing around with it - writing dialogues - having some music. School children now are mostly consumers better make them also to producers of their own 3D plays.

Perhaps something of this can be realized in JPatch?

I found some different links on this:
http://en.wikipedia.org/wiki/Digital_puppetry
http://machin-x.blogspot.com/
http://www.animocap.com/

:roll:
nine
 
Posts: 133
Joined: Mon Jul 04, 2005 2:28 pm


Postby dcuny » Fri Apr 06, 2007 10:07 am

While digital puppetry and motion capture are interesting, but technologies to drive them aren't exactly consumer products at this point. So it's sort of putting the cart before the horse. :?

I'm also not convinced that for the typical user that motion capture or digital puppetry would be easier to use than keyframed animation.

I haven't played with it recently, but my recollection was that you could build "live" performances in JPatch by controlling the sliders in realtime (or near realtime). So you've already got that, in some sense.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Postby nine » Fri Apr 06, 2007 2:49 pm

I have been working a bit with JPatch - just a Hello. But telling a long story - 30 to 90 minutes - that way is too hard.

You have to have a program easy to manage.
You have to have actions in some library to drop on the actors.
You have to animate in realtime to get the real interaction between your actors.
You have to experiment with the interactions to get the right feeling.

Have you had a look at iClone? I believe you need something like that to have to tell a story.

I believe the problem is how to make JPatch easy. :roll:

(Edited by Moderator)
nine
 
Posts: 133
Joined: Mon Jul 04, 2005 2:28 pm

Postby sascha » Fri Apr 06, 2007 3:35 pm

Hi Nine! :)
Are you a bot and is this some kind of memory dump?!?
No offense meant, but please try to stay on topic and somewhat focused - I don't have the time to browse through all your "I haven't looked and this, but maybe you could..." links, and this forum is not the right place to store your browser's bookmarks.
Never mind!
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Postby nine » Fri Apr 06, 2007 4:20 pm

Did you notice that few people are doing animations with JPatch?

I think what's needed to are good tutorials. How about writing a tutorial on how to create a dialog between two characters?

(Edited by Moderator)
nine
 
Posts: 133
Joined: Mon Jul 04, 2005 2:28 pm

Next

Return to General discussion

Who is online

Users browsing this forum: No registered users and 0 guests

cron