inp o҉rtb
The Gangsta
Global Moderator
Official 110mb Guru
   
Offline
Posts: 15567
experimental theologian
|
 |
« Reply #280 on: August 22, 2009, 01:18:45 PM » |
|
Interesting... I'll have to check this out sometime. My thing basically works by passing around actions (you could have a look at imagine/actionkit.js if you like), which are like serializable events. It should be trivial to pass such actions through Wave to keep all clients up-to-date, but I have yet to work on Wave compatibility. idk if it's efficient or anything, but you're welcome to use the code 
|
|
|
|
|
Logged
|
|
|
|
|
antimatter15
|
 |
« Reply #281 on: August 23, 2009, 09:27:26 AM » |
|
But I don't think there's any way for multiple people to simultaneously edit the ordered and serialized actions. It would be very very hard to make the contributions not collide as things are almost totally linear.
|
|
|
|
|
Logged
|
Ajax Animator, a web-based, collaborative animation authoring environment with Flash, Silverlight, and GIF export.
|
|
|
inp o҉rtb
The Gangsta
Global Moderator
Official 110mb Guru
   
Offline
Posts: 15567
experimental theologian
|
 |
« Reply #282 on: August 23, 2009, 09:41:25 AM » |
|
One way to do this is to start with the same state on all clients and have all clients notify each other as each timestamped edit occurs. There'd be substantial overhead, but it'd work.
|
|
|
|
|
Logged
|
|
|
|
|
antimatter15
|
 |
« Reply #283 on: August 23, 2009, 10:38:06 AM » |
|
One way to do this is to start with the same state on all clients and have all clients notify each other as each timestamped edit occurs. There'd be substantial overhead, but it'd work.
But it's not very collaborative, you just watch someone edit in real time, and stop editing when someone else is or else it'll render in the wrong order
|
|
|
|
|
Logged
|
Ajax Animator, a web-based, collaborative animation authoring environment with Flash, Silverlight, and GIF export.
|
|
|
inp o҉rtb
The Gangsta
Global Moderator
Official 110mb Guru
   
Offline
Posts: 15567
experimental theologian
|
 |
« Reply #284 on: August 23, 2009, 10:40:27 AM » |
|
One way to do this is to start with the same state on all clients and have all clients notify each other as each timestamped edit occurs. There'd be substantial overhead, but it'd work. But it's not very collaborative, you just watch someone edit in real time, and stop editing when someone else is or else it'll render in the wrong order The last time I checked, collaboration does not mean getting in each other's way  So absolutely, the clients must schedule their actions such that everyone's happy...
|
|
|
|
|
Logged
|
|
|
|
|
antimatter15
|
 |
« Reply #285 on: August 23, 2009, 10:51:27 PM » |
|
One way to do this is to start with the same state on all clients and have all clients notify each other as each timestamped edit occurs. There'd be substantial overhead, but it'd work. But it's not very collaborative, you just watch someone edit in real time, and stop editing when someone else is or else it'll render in the wrong order The last time I checked, collaboration does not mean getting in each other's way  So absolutely, the clients must schedule their actions such that everyone's happy... You need to make it so you can apply changes to selections, cause with animations, there's tons of places to edit to remove that issue. But with images, you just have one static image, and not being able to apply to a subsection of the image doesn't help. And comparing the interface for Imagine-nGWave (  ) with the new Ajax Animator/Wave UI, mine takes up ~5px more vertical height (when both opening the same sized canvas), but yours has like 200px more for the path actions bar (Well, the Ajax animator had a history bar like that, but Google's philosophy is apparently not to have an Undo button thanks to Playback, so it was scrapped partly for UI space and memory usage). Of course you get to cram tons of documentation, while mine just barely crams all the UI components.
|
|
|
|
« Last Edit: August 23, 2009, 11:00:30 PM by antimatter15 »
|
Logged
|
Ajax Animator, a web-based, collaborative animation authoring environment with Flash, Silverlight, and GIF export.
|
|
|
|
antimatter15
|
 |
« Reply #286 on: August 24, 2009, 12:36:50 AM » |
|
OH NOES! THERE's a MASSIVE memory leak when playing large animations! It's happening on every browser i'm testing (on linux)!
When playing a relatively large animation at 30fps (probably rendering far slower). Opera's memory usage increases at ~1MB per second! Same with Chromium, and Firefox.
I can't figure out if it's a SVG thing (do all browsers suck that much?) or maybe my code has some insane stuff.
|
|
|
|
|
Logged
|
Ajax Animator, a web-based, collaborative animation authoring environment with Flash, Silverlight, and GIF export.
|
|
|
inp o҉rtb
The Gangsta
Global Moderator
Official 110mb Guru
   
Offline
Posts: 15567
experimental theologian
|
 |
« Reply #287 on: August 24, 2009, 12:51:41 AM » |
|
Well, Ajax Animator could afford to perform such actions since each individual frame is not too expensive to render to SVG/VML/Flash. But implementing this into Imagine would negate any benefits of caching. Perhaps the right way to go is indeed using canvas for more client-side operations... and falling back to Flash when canvas is not available. Thanks for that suggestion. Hm... I think the ideal GUI has marginalized menus and a small selection of image icons that represent the most likely functions to be used. Menus are not very user-friendly. As far as the history bar goes... Google's playback unfortunately cannot swap events, so... it's got to stay  #edit# whoa, that sounds like a pretty bad leak. could you reduce it to the basics?
|
|
|
|
|
Logged
|
|
|
|
|
antimatter15
|
 |
« Reply #288 on: August 24, 2009, 01:40:26 AM » |
|
And another really bad thing, is that on Opera and Firefox, closing the tab doesn't reclaim the memory. Chrome does this somewhat by killing the whole process (but if you have tons of tabs, it does multiple tabs per process and you have to kill all of those in order to reclaim the memory).
I think it's a cost related to some issue in rendering SVGs. As for caching, the only way I could see that happening is by having 200 instances of the canvas and toggling style.display. But storing it all in DOM also has costs (and when to update? because updating still causes the memory leak)
I hope it's not an issue on Windows as much.
|
|
|
|
|
Logged
|
Ajax Animator, a web-based, collaborative animation authoring environment with Flash, Silverlight, and GIF export.
|
|
|
inp o҉rtb
The Gangsta
Global Moderator
Official 110mb Guru
   
Offline
Posts: 15567
experimental theologian
|
 |
« Reply #289 on: August 24, 2009, 06:12:21 AM » |
|
Hm... is there any noncollectable trash? I'm not sure how Javascript handles cyclic references and stuff.
|
|
|
|
|
Logged
|
|
|
|
|
arcaders
|
 |
« Reply #290 on: August 24, 2009, 06:16:27 AM » |
|
I think I spotted a bug: the canvas zoom tool doesn't seem to work.
|
|
|
|
|
Logged
|
|
|
|
inp o҉rtb
The Gangsta
Global Moderator
Official 110mb Guru
   
Offline
Posts: 15567
experimental theologian
|
 |
« Reply #291 on: August 24, 2009, 09:58:06 AM » |
|
Incidentally, the AJAX Animator works on the Android browser. The Ext UI loads up just fine; the Adsense frame pwnz the screen real-estate, though. After zooming out (1x zoom leaves the canvas with 0 height), I was able to navigate around a bit. I'm guessing things don't play because I don't have Flash. There is unfortunately no way to drag stuff using the touch interface. Imagine also works in this browser.
What about the iPhone browser? =p
|
|
|
|
|
Logged
|
|
|
|
|
antimatter15
|
 |
« Reply #292 on: August 25, 2009, 05:51:21 AM » |
|
Incidentally, the AJAX Animator works on the Android browser. The Ext UI loads up just fine; the Adsense frame pwnz the screen real-estate, though. After zooming out (1x zoom leaves the canvas with 0 height), I was able to navigate around a bit. I'm guessing things don't play because I don't have Flash. There is unfortunately no way to drag stuff using the touch interface. Imagine also works in this browser.
What about the iPhone browser? =p
Actually, it doesn't play on Android since Android's crappy version of WebKit doesn't support SVG. On the iPhone, you can load, browse, and play animations fine, but you can't actually drag things like android because of the touch.
|
|
|
|
|
Logged
|
Ajax Animator, a web-based, collaborative animation authoring environment with Flash, Silverlight, and GIF export.
|
|
|
|
|
inp o҉rtb
The Gangsta
Global Moderator
Official 110mb Guru
   
Offline
Posts: 15567
experimental theologian
|
 |
« Reply #294 on: August 26, 2009, 05:21:10 AM » |
|
Hm... and have some kind of revision control mechanism where people could fork each other's shiz at different time points.
|
|
|
|
|
Logged
|
|
|
|
|
antimatter15
|
 |
« Reply #295 on: August 28, 2009, 04:34:30 AM » |
|
Hm... and have some kind of revision control mechanism where people could fork each other's shiz at different time points.
It used to have somethign where you could save it into your account and anyoen could fork it and save it to their own accounts, but i never reimplemented it.
|
|
|
|
|
Logged
|
Ajax Animator, a web-based, collaborative animation authoring environment with Flash, Silverlight, and GIF export.
|
|
|
|
antimatter15
|
 |
« Reply #296 on: September 07, 2009, 08:19:14 AM » |
|
Yay! I got it to work, but it's having an issue of being a) super inneficient b) infinte loopy
|
|
|
|
|
Logged
|
Ajax Animator, a web-based, collaborative animation authoring environment with Flash, Silverlight, and GIF export.
|
|
|
|