jit.matrixset animation/automation help

Aug 23, 2007 at 10:05pm

jit.matrixset animation/automation help

Hi, I’ve been working on a patch that is going to be part of a gallery installation coming up, and I’ve been having some troubles. The basic patch works for the idea, which is an interactive stop-motion animation patch using jit.qt.grab and a jit.matrixset object. The grab object sends one frame at a time to a jit.matrixset object which records the frame at an index, while an outputmatrix message tells the matrixset to play back what is already there and loop it. So while you’re animating you can see instantly what has been done so far. I used it to make some animations with kids and it worked pretty well, except I had to be there to make sure the matrixset got saved and cleared out when need be. So that is the issue I’m at right now.

Basically we’re trying to figure out a good way for this to work smootly and automatically so we don’t have to babysit the computer at the gallery. The problem is that the matrixset can only be so big. (not sure what a good limit is. we’ve got it at 1200 right now which seems like plenty and doesn’t bog down the system. not exactly sure how the matrixset works… is it stored in RAM until you save it?) so the idea is that if the thing gets full, the matrixset will get automatically saved, and the animation patch will be cleared out to keep going. then, somehow, have a separate patch that is playing back all of the created matrixsets on a monitor in the gallery. if it can all be done on one computer that would be great. the idea is to avoid encoding it to video (although it may take up a bit of space on the harddrive…) so that there can be a quick and seamless input and output process that the users can see. does this make sense?

So I figured, some kind of single button trigger could be set up to write and clear the jit.matrixset after a user has finished his or her animation or whatever. A counter could be used so that the written file has a name like ‘matrixset1′ and on up. Then, I thought I could use the folder object to populate a menu with the matrixsets that have been saved so far, which could then be played back one by one using some sort of ‘information loop’ using the matrix count as an upper limit for a counter or something like that. The problem I am having is that the folder object won’t populate a menu with .jxf files. So I’m not sure what other way I could get the jit.matrixset object to automatically read the matrixset files and play them back.

I may have made a mistake assuming that using the jit.matrixset object was the best idea for this. It was the only thing I could find that would allow instant playback of the animations. jit.qt .record for example would work for animation, but you can’t play back without saving. Perhaps a combination of the two would work?

Any advice on anything would be great. I’ll attach a copy of the file I’m working on now, the stuff on the right is what i’m trying to figure out.

thanks

grant

#33385
Aug 23, 2007 at 10:16pm

Here’s what I would do given about a week to work on it:

1) use a 3D matrix instead of jit.matrixset. The 3rd dimension is
time which in your case would be something like jit.matrix 4 char 720
480 1200. You could store uyuv for half the data size. Individual
frames are added using src/dstdim and extrcted in the same manner.

2) For saving I would use a multithreaded mxj object so that it
doesn’t block the patch while running. See recent posts on the
java-dev list for how to do this. You could then save the matrix
using the jxf file format for matrices and read them in your other
patch. They would be quite large as they will be uncompressed.

wes

On 8/23/07, Grant Brownyard wrote:
> Hi, I’ve been working on a patch that is going to be part of a gallery installation coming up, and I’ve been having some troubles. The basic patch works for the idea, which is an interactive stop-motion animation patch using jit.qt.grab and a jit.matrixset object. The grab object sends one frame at a time to a jit.matrixset object which records the frame at an index, while an outputmatrix message tells the matrixset to play back what is already there and loop it. So while you’re animating you can see instantly what has been done so far. I used it to make some animations with kids and it worked pretty well, except I had to be there to make sure the matrixset got saved and cleared out when need be. So that is the issue I’m at right now.
>
> Basically we’re trying to figure out a good way for this to work smootly and automatically so we don’t have to babysit the computer at the gallery. The problem is that the matrixset can only be so big. (not sure what a good limit is. we’ve got it at 1200 right now which seems like plenty and doesn’t bog down the system. not exactly sure how the matrixset works… is it stored in RAM until you save it?) so the idea is that if the thing gets full, the matrixset will get automatically saved, and the animation patch will be cleared out to keep going. then, somehow, have a separate patch that is playing back all of the created matrixsets on a monitor in the gallery. if it can all be done on one computer that would be great. the idea is to avoid encoding it to video (although it may take up a bit of space on the harddrive…) so that there can be a quick and seamless input and output process that the users can see. does this make sense?
>
> So I figured, some kind of single button trigger could be set up to write and clear the jit.matrixset after a user has finished his or her animation or whatever. A counter could be used so that the written file has a name like ‘matrixset1′ and on up. Then, I thought I could use the folder object to populate a menu with the matrixsets that have been saved so far, which could then be played back one by one using some sort of ‘information loop’ using the matrix count as an upper limit for a counter or something like that. The problem I am having is that the folder object won’t populate a menu with .jxf files. So I’m not sure what other way I could get the jit.matrixset object to automatically read the matrixset files and play them back.
>
> I may have made a mistake assuming that using the jit.matrixset object was the best idea for this. It was the only thing I could find that would allow instant playback of the animations. jit.qt .record for example would work for animation, but you can’t play back without saving. Perhaps a combination of the two would work?
>
> Any advice on anything would be great. I’ll attach a copy of the file I’m working on now, the stuff on the right is what i’m trying to figure out.
>
> thanks
>
> grant
>
>
>
>
>

#111196
Aug 23, 2007 at 11:05pm

I just thought of another idea… originally this patch was supposed to be able to play back everything that went on in the gallery… a time lapse type thing, but it morphed into the animation thing now… that is the reason for the jit.matrixset.

i suppose the 3D matrix would probably be more efficient so i will try that out. But i realized that I only really need that for the instant playback of frames. However, I could still use a jit.qt.record object to actually record what is done and save a movie file to play back with jit.qt.movie instead of using the matrix object. that would keep the file size smaller, which should make loading and playback easier, correct? Would that make more sense than saving the .jxf files and playing them back?

As far as the multithreaded mxj object, I’ll look into it. I have about 2 weeks, but have never used the mxj object before, so I’m not sure I’d be able to pull that off or not. If there are any other suggestions for saving/autoloading/playback let me know. Thanks for the help.

-grant

#111197

You must be logged in to reply to this topic.