hi, no i made a custom one just for my purpose ... keeping the objects in the plugin (replacing the js) and rendering via iterations in qc ...
On Oct 4, 2010, at 3:49 PM, Alastair Leith wrote: > Presumably the older version of this plugin is Intel only too. This isn't the > plug-in you referred to as having just written that did 4K at 60+fps is it? > > > On 05/10/2010, at 12:24 AM, Stefan Kainbacher, NEON GOLDEN wrote: > >> the plugin is finally out ... just found it ... >> >> Objective-C on the fly >> http://quartzcomposer.com/plugins/34-objective-c >> >> >> On Oct 4, 2010, at 2:07 PM, Mehmet Akten wrote: >> >>> thanks, conceptually this seems like a similar approach to the 2a example >>> Alastair sent in the previous email. a JS patch outside the iterator to >>> create & update and manage the data, and an iterator just pull the data >>> from a structure and render - though your JS is more OOP in itself, I will >>> be dissecting your code a bit more. >>> >>> While the performance of having the JS inside the iterator seemed to be a >>> lot better (avoiding a second loop - JS loop), I do think keeping the JS >>> outside might make management a lot simpler - especially when wanting to >>> dynamically add and delete objects. And also perhaps giving possibility to >>> using a structure render plugin (like Kineme's one) which takes a structure >>> and does the loop internally. >>> >>> This also brings up the question about performance of JS loop vs QC >>> iterator. If we could lose one of the loops (JS Loop vs QC Iterator), which >>> one would be more beneficial to lose? Keep the QC iterator and the JS patch >>> inside that which also draws (like the example I sent). Or lose the >>> iterator and have a JS loop which updates everything, and sends to a >>> structure renderer. Turns out JS loop is way way faster than QC iterator! >>> See attached example. This calculates the average of N random numbers. At >>> 50K iterations JS loop gives me 150fps, QC iterator gives 7fps! I knew >>> iterators were slow but I didn't know they were that slow! >>> >>> <JS loop vs iterator.qtz> >>> >>> >>> P.S. I remember what the dummy input is for now. If the input doesn't >>> change to a JS patch, it isn't reevaluated. >>> >>> P.P.S. I realise for heavy situations a plugin would be much much much >>> faster. The reason I'm looking into keeping it all QC for now is for rapid >>> prototyping, improvising, realtime development etc. which is what excites >>> me about QC in the first place. >>> >>> >>> >>> >>> >>> MSA Visuals Ltd. >>> Unit 107 Netil Studios >>> 1-7 Westgate St. >>> London E8 3RL, UK >>> +44 20 8123 9986 >>> www.msavisuals.com >>> >>> On 4 Oct 2010, at 10:56, Stefan Kainbacher, NEON GOLDEN wrote: >>> >>>> >>>> hi memo, thats the way i used to deal with oop. just wrote a plugin for a >>>> similar use-case. thats much faster if you have more objects. >>>> >>>> best, stefan >>>> >>>> <oop-example.qtz> >>>> >>>> >>>> On Oct 3, 2010, at 9:36 PM, Mehmet Akten wrote: >>>> >>>>> ah thanks yea, that should be d.mass , not mass. >>>>> also it should be pos += vel / mass, not pos = vel / mass. (i haven't >>>>> slept much this past week). >>>>> So that explains the disappearing. >>>>> >>>>> It seems the update() is called only once per run. Even though in debug >>>>> mode the JS patch is flashing red every frame, if I set pos to random >>>>> every frame, it still doesn't move. So I need to make it get called every >>>>> frame some how. Maybe that isn't too complicated, then there is still the >>>>> Case 2 :) >>>>> >>>>> >>>>> P.S. I've pulled this thread in from the Quartz list to the QC list. >>>>> >>>>> >>>>> >>>>> MSA Visuals Ltd. >>>>> Unit 107 Netil Studios >>>>> 1-7 Westgate St. >>>>> London E8 3RL, UK >>>>> +44 20 8123 9986 >>>>> www.msavisuals.com >>>>> >>>>> On 3 Oct 2010, at 20:27, George Toledo wrote: >>>>> >>>>>> Also.... still sussing out where you are going/what you need to do >>>>>> (sorry, it's taking a moment to sink in). >>>>>> >>>>>> ...but I just opened up the composition and ran it. Mass wasn't being >>>>>> declared anywhere, and if you did declare it where you have it in the >>>>>> javascript, it will "fart out" (excuse my highly technical term). >>>>>> >>>>>> This re-order allows there to be a mass value that doesn't cause error >>>>>> in the javascript compiler. Apologies if my re-order precludes something >>>>>> that you're trying to accomplish that's going over my head (as in, I'm >>>>>> still sussing out the desires in your original post, in relation to this >>>>>> qtz.) >>>>>> >>>>>> -GT >>>>>> >>>>>> On Sun, Oct 3, 2010 at 3:16 PM, Mehmet Akten <[email protected]> wrote: >>>>>> Thanks george, that makes perfect sense, I'll git it a shot. >>>>>> >>>>>> P.S. I accidentally posted this to the quartz dev list first. I reposted >>>>>> on the QC list too as its more related to that. Probably best not to >>>>>> continue this thread on this list. Apologies for the double post. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> MSA Visuals Ltd. >>>>>> Unit 107 Netil Studios >>>>>> 1-7 Westgate St. >>>>>> London E8 3RL, UK >>>>>> +44 20 8123 9986 >>>>>> www.msavisuals.com >>>>>> >>>>>> On 3 Oct 2010, at 20:11, George Toledo wrote: >>>>>> >>>>>>> Quick note: still reading through your case scenarios; the feedback >>>>>>> patch will work inside of the iterator if you don't have consumer >>>>>>> patches. The results can then be gathered in a queue and published out, >>>>>>> where the values can then be iterated through again if necessary. Not >>>>>>> saying this is necessarily always efficient, but it's possible. >>>>>>> >>>>>>> -GT >>>>>>> >>>>>>> On Sun, Oct 3, 2010 at 2:58 PM, Mehmet Akten <[email protected]> wrote: >>>>>>> Hi all, a much discussed topic I'm sure... >>>>>>> >>>>>>> I know QC is not designed as a 'proper' OOP programming language etc. >>>>>>> so a question regarding object oriented programming re quartz composer >>>>>>> may be irrelevant, but nevertheless I'm trying to get my head around >>>>>>> how best to tackle some basic data/behaviour management approaches in >>>>>>> QC. >>>>>>> >>>>>>> Take this scenario (this isn't for anything so I don't have specific >>>>>>> goal, just a test case). >>>>>>> >>>>>>> Case 1: >>>>>>> I have N initial cubes, flying around with some basic behaviour. E.g. >>>>>>> In this particular case, I want them to each have a target point, they >>>>>>> fly to their target point based on various parameters (mass etc). When >>>>>>> they reach their target, they pick a new target and fly there. I'm sure >>>>>>> I did this kinda stuff in the past using global JS vars, but I couldn't >>>>>>> get it to work this time. I've attached my comp, if I have one >>>>>>> iteration, I see my cube, but it doesn't move. If I have more than 1 >>>>>>> iteration, they all appear, but then disappear after a short while. >>>>>>> >>>>>>> What I'm doing may be very hacky (JS patch in an iterator with a global >>>>>>> array of structures). THe feedback patch seems to try and address this >>>>>>> issue, but obviously doesn't work in an iterator. >>>>>>> >>>>>>> >>>>>>> Then there's more. Imagine a few more basic scenarios. >>>>>>> >>>>>>> Case 2: >>>>>>> 1. when I click in an empty space, a new object is created and added to >>>>>>> the flock >>>>>>> 2. when i click on an existing object, it is deleted >>>>>>> 3. pressing 'e' toggles the app between 'edit' mode and 'play' mode. in >>>>>>> 'edit mode they all stop moving and when you click on an existing >>>>>>> object you get some very basic options: >>>>>>> a. by clicking elsewhere you can set the new target for that >>>>>>> object >>>>>>> b. pressing d deletes the object >>>>>>> c. numbers 1-9 defines how that particular object should be >>>>>>> drawn (texture, cube, sphere etc.) >>>>>>> d. etc. >>>>>>> >>>>>>> I can imagine how to do #3 (keep track of a bool in the root.data >>>>>>> object). and #3c (multiplexer). #1, #2, #3a and #3b should be straight >>>>>>> forward too, but its the data management that I can't get my head >>>>>>> around. >>>>>>> >>>>>>> >>>>>>> I know if it gets too complicated it just makes sense to write a >>>>>>> plugin, but I just want to see exactly how far can can QC be taken in >>>>>>> this way regarding logic and behaviours. The scenario I mention above >>>>>>> doesn't seem too complicated, in fact is quite basic and I feel you >>>>>>> should be able to do it within a noodley environment. >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> P.S. connecting the JS output to enable of a billboard worked by the >>>>>>> way, thanks for the tip alessandro >>>>>>> >>>>>>> Cheers, >>>>>>> >>>>>>> Memo. >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> MSA Visuals Ltd. >>>>>>> Unit 107 Netil Studios >>>>>>> 1-7 Westgate St. >>>>>>> London E8 3RL, UK >>>>>>> +44 20 8123 9986 >>>>>>> www.msavisuals.com >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Do not post admin requests to the list. They will be ignored. >>>>>>> Quartz-dev mailing list ([email protected]) >>>>>>> Help/Unsubscribe/Update your Subscription: >>>>>>> http://lists.apple.com/mailman/options/quartz-dev/gtoledo3%40gmail.com >>>>>>> >>>>>>> This email sent to [email protected] >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> George Toledo >>>>>>> [email protected] >>>>>>> www.georgetoledo.com >>>>>>> >>>>>>> The information contained in this E-mail and any attachments may be >>>>>>> confidential. >>>>>>> If you have received this E-mail in error, please notify us immediately >>>>>>> by telephone or return E-mail. >>>>>>> You should not use or disclose the contents of this E-mail or any of >>>>>>> the attachments for any purpose or to any persons. >>>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Do not post admin requests to the list. They will be ignored. >>>>>> Quartz-dev mailing list ([email protected]) >>>>>> Help/Unsubscribe/Update your Subscription: >>>>>> http://lists.apple.com/mailman/options/quartz-dev/gtoledo3%40gmail.com >>>>>> >>>>>> This email sent to [email protected] >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> George Toledo >>>>>> [email protected] >>>>>> www.georgetoledo.com >>>>>> >>>>>> The information contained in this E-mail and any attachments may be >>>>>> confidential. >>>>>> If you have received this E-mail in error, please notify us immediately >>>>>> by telephone or return E-mail. >>>>>> You should not use or disclose the contents of this E-mail or any of the >>>>>> attachments for any purpose or to any persons. >>>>>> >>>>>> <OOP test1_b.qtz> >>>>> >>>>> _______________________________________________ >>>>> Do not post admin requests to the list. They will be ignored. >>>>> Quartzcomposer-dev mailing list ([email protected]) >>>>> Help/Unsubscribe/Update your Subscription: >>>>> http://lists.apple.com/mailman/options/quartzcomposer-dev/stefan%40neongolden.net >>>>> >>>>> This email sent to [email protected] >>>> >>>> -- >>>> NEW phone number: 0676 60 33 989 >>>> >>>> -- >>>> NEON GOLDEN >>>> VISUAL EXPERIMENT >>>> >>>> lab.neongolden.net >>>> >>>> -- >>>> www.respectyourvj.net >>>> >>>> >>>> >>>> >>>> >>> >> >> -- >> NEW phone number: 0676 60 33 989 >> >> -- >> NEON GOLDEN >> VISUAL EXPERIMENT >> >> lab.neongolden.net >> >> -- >> www.respectyourvj.net >> >> >> >> >> >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Quartzcomposer-dev mailing list ([email protected]) >> Help/Unsubscribe/Update your Subscription: >> http://lists.apple.com/mailman/options/quartzcomposer-dev/qc.student.au%40gmail.com >> >> This email sent to [email protected] > -- NEW phone number: 0676 60 33 989 -- NEON GOLDEN VISUAL EXPERIMENT lab.neongolden.net -- www.respectyourvj.net
_______________________________________________ Do not post admin requests to the list. They will be ignored. Quartzcomposer-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com This email sent to [email protected]

