according to my understanding, the first setup should quit after 25 iterations (and it does so accordingly). However, the second should do the same and it does not.

rand() does seem to work fine in the condition, however i guess the question has to do with all expression functions, and in Frank's case, custom expression functions being able to work in the conditional statement. i just happen to be curious myself to be quite honest..

I'd like to know about some of those additional undocumented features…

I tried experimenting with Frank's issue and couldn't get very far in a solution. For the most part, only arithmetic operators seemed to be happy when included in a conditional statement. Of course in the situation of sqrt(), you could just use h^0.5 in place and get it to work, but I highly doubt he was actually needing to get the sqrt function to work, and was more so wanting any expressions in the conditional statement to process successfully.

commercial vs non-commercial.. both apprentice versions are for non-commercial work. The free one limits your resolution output and has a watermark, HD get's you 1080 without a watermark for $99. Anything else is for commercial work, hence the cost of the software.

As far as functionality goes, apprentice and HD versions have the same exact feature set as Houdini Master.

1. Select a Polygon-Loop 2. “CTRL+i” to invert the selection 3. Press “3” to convert to edges 4. “CTRL+i” to invert the selection

Eric

and if i could find a python/hscript command for input selectors such as loop, invert, etc we could easily create a very basic otl/shelf tool that's binded to a single hotkey.. but alas, can't seem to figure this out.. anyone else?

would be interesting if there was a python/hscript command to execute hotkeys as well. so you could just write a script that runs through a series of customized hotkey operations and throw it up on the shelf as a tool..

well here's an idea using the event parm on the paint sop (stroke tab). I basically fetch that state in chops and run it through a logic chop with bounds set from 1 to 1 and an hscript command set to “ fcur `$F+1` ” for the ‘while on’ trigger. Since a value of 1 equals the ‘active stroke’ event on the paint sop, the hscript command basically takes the current frame and adds to it recursively while you are actively stroking (or holding the mouse button down).

Next to all that, I'm fetching the hitpos channels and recording them in chops. So no need to playback, no need to step forward.. Just paint and your frames will increase and your position will be actively recorded when done so.

Now, I'll admit I'm not crazy about the stability of this idea to be quite honest. Sure, it “works” but you can run your frame count really high, really fast which can cause Houdini to segfault.. Not fun. (I suggest testing this out by painting in short stints rather than holding the mouse down for a whole minute). Especially since it appears to have no tolerance over whether the position hasn't changed much if not at all, so it may record flat lines here which is probably not what you want.

You can even attempt to have it fcur at `$FF+.1` if you'd rather work with floating frames, but still not what i'd say a perfect solution by any means. But hey, it may generate some ideas and maybe get you closer to a solution.. :wink:

Plus, if you don't want it step forward and record every frame while you're ‘actively stroking’, change the bounds to 0, 0 and it will only step on the ‘begin stroke’ event. This will record the exact position each time you press the mouse button down but not anything else during a position change or at the end..

I prob won't have access to H tomorrow so maybe someone else can chime in as well if this doesn't get you anywhere..

I'm still trying to think of an automated way to handle this but for now, are you able to easily record one frame at a time by simply using the right arrow key to step forward?

I'm doing this now to a simple sphere and a paint sop with a fetch chop grabbing hitpos and a record chop storing those channels at each frame. It basically becomes a rhythmic paint, hit right arrow, paint, right arrow, paint, etc etc and those positions are getting stored just fine… No need to have playback start up. This even allowed me to go back to a particular frame and overwrite it if necessary.. I even added a keyboard chop to (de)activate the record chop through a toggle so I could decide when I wanted it to record or not (the only downside to that is you'll have to manage your scroll lock key for intercept mode which is not worth it imho)

I used to split my left and right channels (for stereo obviously) and then use a combination of the pass filter chop along side with a band eq chop to at least separate my highs and lows.. you can then resample the waveform and take the envelope of it to get a nice animation curve.. apply how you like..

also, i would use math chops pretty heavily to get my ranges in order.. and on another note, you can use the copy chop to trigger a custom waveform every time it hits a threshold.. so once you get your frequencies in order, you should be able to copy that wave and trigger its motion..

well, opparm can do a lot of things.. are you trying to list the value of the channel reference at the current point in time, are you trying to list the channel reference expression itself, or are you trying to add a channel reference with opparm..

that might clear things up a bit, but for now, let's say you have geo1 and geo2 and they're both at the obj level. geo1 tx is referencing geo2 tx so the relative expression reads ‘ch(“../geo2/tx”)’.

to generate a script and see how to use chadd and chkey, you could:opparm -dx geo1 tx