PDA

View Full Version : LWSN on OS X ?!!



dennis
11-01-2005, 05:59 PM
We're trying to get Rush (http://seriss.com/rush/), running on a PC and Mac network. It's working beautifully on the PC's; however, LWSN on OS X seems to work differently than the PC's, which can run arguments via the command line. Instead, on OS X it opens up a window requesting an argument. If you're interested in the thread we have in the rush forums, you can view that though one of the choices on this page; http://seriss.com/rush/index.php?tab=forums

In effect, I need to be able to be able to run: lwsn -3 -c//server/jobs/_lightwave/_config_pc -d//server/jobs/_lightwave //server/jobs/_lightwave/scenes/balls_rush_test_04a.lws 20 20 1 from the terminal in OS X. This works via the PC but fails on the Mac... Adding "open" to the beginning doesn't help. It also fails when you put this in the LWSN cmdLine file.

I've called newtek tech support and they were of absolutely no help, unfortunately. The person did give me an email address to send my question to ([email protected]). I hope to get some help via that route.

Any help is very much appreciated. I will post my progress/utter failure, in the hope that it will save others days of troubleshooting completely undocumented features of Lightwave (using screamernet on the Mac platform).

By the way, Rush (for PC's anyway), seems to be a great render controller for Lightwave as long as your network is configured correctly. It's somewhat expensive ($150.00 per machine), but you can render pretty much anything with it (we're using it for Maya, After Effects, and Lightwave (PC only so far)).

dennis
11-02-2005, 11:51 AM
So Donny at NewTek tech support called me back this morning and essentially confirmed my fears; LWSN on OS X doesn't work quite the same way as the PC version. i.e. There is no way to do the following from a command line on OS X

(lifted from the Lightwave 8 help file)
Rendering Without LightWave
The LWSN program has a third option that lets you render a scene without running LightWave. There is no control machine and thus it is not a distributed rendering situation. You must tell the program specifically what to render. The method is run from a DOS prompt using the following syntax (one line):

LWSN -3 [-c<config dir>] [-d<content dir>] <scene file> <first frame> <last frame> [<frame step>]

As you can see, you supply the program with the basic information needed to render a scene. An example would be:

LWSN -3 -cS:\Lightwave\Config -dS:\Lightwave\Content oldmacdonald.lws 1 900 1

In the example, the program would render frames 1 through 900 of the oldmacdonald.lws scene using the config files stored in the S:\Lightwave\Config and using S:\Lightwave\Content as the Content Directory.

HINT: You can get the syntax for ScreamerNet by simply typing LWSN with no arguments.

It's too bad that the Mac version of LWSN doesn't work the same way that the PC version does. I'm going to send in a feature request asking that this be corrected. It's also too bad that Network rendering on the Mac is completely undocumented for the Mac.

The Lightwave 8 help says this about Network rendering on the Mac (and Linux)

Note: The following instructions refer specifically to setting up ScreamerNet on a Windows based system. You also can use ScreamerNet on Mac and Linux computers. You can find helpful tutorials for those systems on Scott Cameronís LightWave tutorial website, http://members.shaw.ca/lightwavetutorials/.

Well, thanks for that :~(

Lightwolf
11-02-2005, 12:00 PM
Afaik this is due to LW being based on ooooold libraries on the Mac, predating the concept of a command line on the Mac.
I think as soon as there is an XCode port, lwsn should work as expected...

...Now, the XCode port is another topic... ;)

Cheers,
Mike

eblu
11-29-2005, 08:58 AM
there is a way... I think.

yeah, open LWSN and you get that crazy window, but there is another way to send commands to screamernet.

the LWSN CmdLine file.

LWSN is based on really old libs. ok we get it. but at some point Lightwave Layout, modeler, and LWSN gained the ability to read a command file on startup. the short version fo this story is that every time "LWSN" is launched, it looks for a file called "LWSN cmdLine" in the same directory that the app lives in, and will run the command in that text file!

so the "modern" way of setting up LWSN on a mac, has you editing a text file, instead of pasting a command into that crazy window.

so... what if the mac in question has dual processors? then you need two copies of LWSN to take advantage of the second processor... but then you need a gimmick to direct each LWSN copy to a different processor, job, and ack file right? this bit I kinda like... LWSN looks for "LWSN cmdLine", but "LWSN_procOne" looks for the file called "LWSN_procOne cmdLine"

so lets put this all together.

LWSN reads a text file upon launch, negating the need to use that crazy window
LWSN can be copied, renamed and directed by text files ad nauseum.
Applescript is a robust scripting application, that can be used to launch applications, quit applications, write text files, and keep track of things such as the date a file was changed.

****, a clever unix developer, could easily write a daemon that spurts a text file into a directory, and kills and re-launches screamernet on cue.

so you could write an app that sends the command to a file, and relaunches screamernet, for the duration of the rendering.

its bone headed, its obtuse, its needlessly complicated... but it could work.

dennis
11-29-2005, 12:27 PM
Thanks to you both for posting suggestions and explanations. Eblu, Went down that dark road - dead end... It needs to be supported via the terminal.

One of the cool things about Rush is that you don't need to initialize screamer nodes, create job and ack files, duplicate lwsn per cpu, etc., (Plus it works with practically everything). But it only works via the command line. When you submit a scene to render via Rush, it is basically writing a bunch of separate command files and sending them to your networked machines (1 file per frame, or 1 per your requested batch length). We have this working beautifully with Lightwave on the PC, (and cross platform on Maya and After Effects).

The other benefit to Rush is that you can pause,kill, and/or re-queue frames individually (or per batch) if necessary. Screenshots available here; http://seriss.com/rush-current/screenshots.html

I imagine it would take a lot of effort and be way more complicated than it looks to have Rush convert just the command files it creates that are sent to Macs into LWSN cmdLine files, manage how lwsn picks these renders up, recognize when the render has finished (and if successful), and continue repopulating the LWSN cmdLine file(s) with new data. And after you've done all this, you'd still have lost the ability to see the progress of the frames being rendered on the Mac (you can view each frame or batches progress from within Rush). And for all that effort what you get is a workaround/hack just to get Rush working with Lightwave on the Mac (I would guess a very small portion of Rush's userbase)

I've received excellent support from Greg Ercolano (the Rush developer) - it's really Newtek's Mac implementation that needs reworked.

Dennis

Lightwolf
11-29-2005, 04:11 PM
****, a clever unix developer, could easily write a daemon that spurts a text file into a directory, and kills and re-launches screamernet on cue.
Well, even a shell script that parses input, creates the cmline file, launches lwsn and then removes the cmdline file again (or not, depending) would do. And that it turn could be launched like any other command line app...

Cheers,
Mike

jeremyhardin
11-29-2005, 04:58 PM
Well, even a shell script that parses input, creates the cmline file, launches lwsn and then removes the cmdline file again (or not, depending) would do. And that it turn could be launched like any other command line app...

Cheers,
Mike
took the words out of my mouth.

Lightwolf
11-30-2005, 02:38 AM
took the words out of my mouth.
I seem to keep doing that (I received a similar post yesterday)... sorry for that, I'll put them back ;)
Cheers,
Mike

dennis
11-30-2005, 03:57 AM
Well, even a shell script that parses input, creates the cmline file, launches lwsn and then removes the cmdline file again (or not, depending) would do. And that it turn could be launched like any other command line app...

Cheers,
Mike


So anyone want to take a crack at it? :)

I don't know if I'm being misunderstood or you guys are just unix/applescript/programming gurus... Rush is creating a command line file for each frame and/or batch, (not one per scene); it's doing this as machines become available; so in my current situation with 5 pc's and 1 or 2 G5's, said script would have to be tied into Rush, know when a Mac becomes available, convert the argument, manage lwsn instances and cmd Line files per available cpu's on any given Mac (Rush doesn't need to do this currently, so that would have to be implemented as well).

I could write a script that does what you are saying in general terms (not trying to tie it into Rush), but my whole point is that I want to manage the renders via Rush - and check status, re-queue, re-run, re-order priority, pause, etc.... seems to me that would be a big undertaking, require the Rush developer to assist (he thinks this is a problem that Newtek should address), and probably still come up short (unless there is a way to capture the data in the lwsn window and get it into Rush somehow).

Not really worth it for the 1-2 Macs I would be rendering on currently. In the future we're intending to add more Macs to the mix, so I still hope this gets addressed in the future.

Lightwolf
11-30-2005, 04:04 AM
So anyone want to take a crack at it? :)

Well, I don't have a Mac ... yet ;)
Cheers,
Mike