Reflex patent

Ideas, enhancements, feature requests and development related discussion.

Reflex patent

Postby TheMarshal » Tue Feb 12, 2008 3:32 am

If your interested in finding out more about Digitalfish's Reflex animation software, go tohttp://www.wipo.int/portal/index.html.en and search for Herman and/or Oftedal and animation (I can't link directly to the patent for some reason).I recommend opening the 2005 pdf in the documents section and having a look (it has all the images in place unlike the other pdf's).

Oh and as far as I know reflex is still aimed at a 1.0 release later this year. The Marshal.
TheMarshal
 
Posts: 3
Joined: Tue Feb 12, 2008 2:46 am

Re: Reflex patent

Postby dcuny » Tue Feb 12, 2008 5:51 am

Gah... I hate software patents. :(
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Reflex patent

Postby TheMarshal » Tue Feb 12, 2008 7:52 am

Heh, it's true that software patents (patents in general really) are a profoundly messy area.

The information in this patent is really interesting though, the architechture described is very different from any other system I know. For instance, every other 3d software that I'm aware of uses a tree or DAG to represent scene geometry. Reflex uses a directed-graph (permitting arbitrary cycles) which allows recursive parenting and constraints. In fact the scene/expession graph is turing complete!

The animation layer system is also different from what you would expect ( and from what has previously been speculated) in that it's a true motion compositing system (supports all Porter and Duff compositing algebra) as opposed to merely being an animation blender.

Lots of stuff on Motion paths as well (again very different from what people think they are). Also, it's interesting but unsurprising how much pixar terminolgy they use (avars etc).

While much of it can't be directly applied to jpatch, some of the smaller features potetially could. Such as the use of an n*m lighting matrix to provide artistic control over how surfaces react to lights or the way it visualizes constraints for quaternion rotations.

Looks like a massive piece of software though.

TheMarshal
TheMarshal
 
Posts: 3
Joined: Tue Feb 12, 2008 2:46 am

Re: Reflex patent

Postby dcuny » Tue Feb 12, 2008 9:31 am

TheMarshal wrote:The information in this patent is really interesting though, the architecture described is very different from any other system I know. For instance, every other 3d software that I'm aware of uses a tree or DAG to represent scene geometry. Reflex uses a directed-graph (permitting arbitrary cycles) which allows recursive parenting and constraints. In fact the scene/expression graph is turing complete!

The patent is huge, and being either an expert in the field of software engineering or a patent lawyer, it's difficult to determine what exactly they consider as "novel" in their system.

As you said, the core of Reflex is essentially a programming language, and it's designed to be distributed over a network. I'll grant that got some very cool stuff, but the actual details - stuff like dirty flags on graphs to allow lazy evaluation - seem sort of obvious. And it goes on for page after page of this sort of thing - iterative unrolling, conditional execution, iteration and recursion - nothing novel to see there. I don't understand everything in the patent - it goes on for over 100 pages - but just about everything that I do know something about seems to be a fairly obvious application of existing ideas.

In their section on Ghosts the describe standard onion skinning, including opacity and "Doppler shift" - as if they were unique, but which exist in other products.

They appear to claim that the idea of drawing motion paths through a bone is a novel idea. Heck, they seem to claim the very idea of drawing a motion path is a novel animation method:
DigitalFish patent wrote:1. An animation method, comprising:
providing a display environment on a display device;
providing a body for display in the display environment; and
determining a motion path for a first portion of the body relative to a second portion of a body.

In plain English, "We claim a patent on drawing a path from one keyframe to the next." And that's only the first of 47 distinct claims they make.

It's as if they took every features in Reflex and stuck it in the patent. They've got a section where they describe how allow users to see motion paths that are blocked by geometry in the scene by rendering the path after the geometry. It's like Microsoft holding a patent on rendering the cursor with an xor operation.

That's not to say that Reflex hasn't got some seriously cool stuff in it. But the claims they make to being "novel" on everything under the sun make me want to pull my hair out.

The animation layer system is also different from what you would expect (and from what has previously been speculated) in that it's a true motion compositing system (supports all Porter and Duff compositing algebra) as opposed to merely being an animation blender.

Actually, it's not really that different from what I'd expect. They apply a pre-existing idea - and, or, xor, A over B - to blending various layers. I seriously doubt there's no prior art on this.

It could be that I don't understand patents, or what DigitalFish is claiming. But this sort of thing really bothers me. :(
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Reflex patent

Postby sascha » Tue Feb 12, 2008 10:05 am

Well, sitting here in Europe, I can (for now) safely ignore any patent issues. Patents are indeed a messy area, and software patents are simply a ridiculous idea (as well as the very concept of intellectual property itself, but we can discuss this in an off-topic thread).

Given the number of patents that cover trivial or otherwise obvious "inventions", I'd be surprised if JPatch didn't violate any of them. But frankly, I don't care - the only alternative would be to stop development, and this is true for every open-source project out there.

Guessing from David's description, this particular patent seems to fit in well with all the other software patents - yet another one who "invented" that 1 + 1 = 2.

I think that using JPatch is perfectly save, and I'm also confident that I can't be threatened for writing it - partly because there are no software patents in Europe (but this can change), and partly because the legal situation is utterly unclear: I don't think that you've got to pay a license when not "using" the patent commercially.

That said, I don't see any threat right now, so I don't bother - we can still discuss what to do about patents once there is a real threat, and chances are that this will never happen :)
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Reflex patent

Postby dcuny » Tue Feb 12, 2008 11:14 am

There are two interesting idea on the display of motion curves:
  • Allow them to be "stretched" along one (or more) axis to show the action more clearly, and
  • Allow them to be projected along a different axis than the viewing axis
Of course, you can already do that from in the motion curve editor. :?

And I still think having a quick way to adjust the ease in and ease out of the motion curves from the viewport would be better than having to fiddle with a 3D motion curve in the viewport or fiddle with the splines in the curve editor. ;)
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Reflex patent

Postby TheMarshal » Tue Feb 12, 2008 1:07 pm

I actually started this topic hoping for a discussion on the technology in Reflex and any potential applications with regards to jpatch not start a patent rant .Though as I have said I agree with Dcuny in principal. To be fair much of this patent is probably more of a "cover my ass" with regards to Digitalfish and other companies (especially patent sharks) rather than an attempt to restrict the development of other software.

As far as novel concepts in the patent are concerned there's actually quite a few of novel features implemented within the software described. Whether these features have ever been thought of before is another matter.But I've always thought that credit should go to the person or persons who successfully implement the idea, not the person who thought of it but never used it.

Take the scene graph described in the patent for instance. While the concept of a directed graph is not even remotely new, using one to represent scene geometry in an actual working piece of software definetly is. As I said in my previous post every other scene graph technology I know of, both in working software and theoretical patents (I do a lot of patent searching) forbids cycles. This would seem to indicate that actually coding such a system is very difficult and as such Digitalfish probably deserves some kudos for getting a working piece of software based on such an architechture.

I also think that the novelty of Reflex is not so much in the individual feature so much as in the way the software hangs together as a whole. Having studied the patent in detail for some time now it really is impressive how integrated and deep the architechture they have devised is, it's definatly the most advanced animation architechture i've seen (it's nice to see Houdini finally surpassed after all these years).

Anyway, lets get back analyzing patent and seeing what ideas could be applied to jpatch!
TheMarshal
 
Posts: 3
Joined: Tue Feb 12, 2008 2:46 am

Re: Reflex patent

Postby sascha » Tue Feb 12, 2008 2:07 pm

Anyway, lets get back analyzing patent and seeing what ideas could be applied to jpatch!

Wait a minute!
I've no objections against reading articles, books, papers, Siggraph proceedings, etc. and apply the ideas presented there to JPatch - these documents have been published with that in mind, after all - so I usually don't care whether the topics covered are subject to patents or not.

But extracting these ideas directly from patent claims doesn't look like a bright idea to me, because
1) it's clear that this actually is patent infringement, and
2) patents are written by lawyers, the usually document the obvious in bold words, and contain little to no practical information.

That said, I'm of course interested in ideas that would help making JPatch better, so if you've got more information on the subjects you've mentioned, I'd appreciate it.

Reflex uses a directed-graph (permitting arbitrary cycles)

I'm not a mathematician, but AFAIK a tree in graph theory is an connected directed acyclic graph, and is the only way I can think of storing something like a scene-graph. I can't imagine a way of organizing the nodes that would allow loops in the graph without causing contradictions. If a node (e.g. my hand) depends on the position of another node (e.g. my shoulder), how could I possibly parent the second node to the first one? I agree that a system that allows such loops (e.g. for constraints) would be nice, I just can't figure out how it should work. Can you clarify that, or do you have a link to a more detailed description?

Edit:
Ok, I've quickly browsed through the paper, and it states that in the event of a loop, the node that detects the loop could either:
* raise an error
* output some default value or approximation
* allow for a finite number of loop traversals by means of incrementing some "time-to-live" field.

As for JPatch, the current development version makes excessive use of lazy evaluation, both in the scene-graph (where transformation matrices and their inverse are cached and only reevaluated when flagged as invalid) and in the subdivision mesh (the positions, limits and normals of higher level vertices are cached as well).
The scene graph is ready for use, but does not allow for loops. The constraint system is not ready yet, but it will feature a "factor" or weight that can change over time (i.e. animated with a motion curve). So the user will be able to fade in/out a constraint. Constraints can't form loops too - theoretically it would be possible to allow loops (over time) as long as there is no loop at a specific point in time (i.e. constraint 1 is only active when constraint 2 is inactive), but this would add a lot of complexity to the system and might be very confusing for users. The situation where such a thing could be useful are rare, ad hoc I can only think of one example:
Some character rides a bicycle (thus the character is parented to the bike), stops, and then carries it (now the bicycle is parented to the character). Again, I think this situations are very rare, and can be dealt with workarounds (e.g. an invisible second bicycle, that becomes visible when the original becomes invisible, or doing the whole scene with two shots, each with a different scene-graph, or using an invisible null object and parent both, the character and the bicycle to that null object).
My experience here is rather limited, so I'd like to start with a simple implementation and gain experience with it. If it proofs to be insufficient, I can always change it to a more complex system (I haven't even released version 1.0 yet after all).
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Reflex patent

Postby dcuny » Tue Feb 12, 2008 8:01 pm

TheMarshal wrote:Anyway, lets get back analyzing patent and seeing what ideas could be applied to jpatch!

I agree with Sascha - pilfer from the paper is just wrong. :|

Prior to your post, we've been basing things on what DigitalFish has publicly posted. Most of these user interfaces have been implemented in other programs - ghosting, motion curves, doppler color, varying opacity, and so on. We've suggested a number of them without ever seeing the patent.
In cases where we've been wrong, it's a good thing - it's led to some different, but useful ideas.

I don't think the "user interface" sort of stuff can be patented anyway. Besides, the "novel" claims in DigitalFish's patent are "An animation method..." That is, they're patenting the idea of using cyclical graphs as the base of their "animation method". All other ideas flow from there. JPatch doesn't resemble that sort of thing.

But reading the patent - which reveals specifics of the implementation - with the intent of getting new ideas to put into JPatch? That's not right. :?
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am


Return to Development

Who is online

Users browsing this forum: No registered users and 1 guest

cron