Everything related to SDK.
I simulated a few simple soft body scenes in Realflow 10, saved them in *.mxs format and wrote a script to load and render these scenes in Maxwell 4 (see attachement).
In principle, everything is working fine. I am using the denoiser running on GPU, and the script is loading all the frames of different scenes and renders them as it should.
However, for some reason, the script keeps crahsing at (random?) intervals, telling me that "second pass render finished" (output command window) and staying unresponsive. It is not proceeding to render, even after hours, just when I hit STRG+C two times to skip the current render, it jumps to the next one. Running the denoiser on CPU does not change this weird behaviour
Is there some mistake in my script? What is happening?
Of course, I would like to run this (in total quite extensive) rendering job for days and not just for some minutes or hours up to the next crash...
It would be great if someone could give me some advice.
Best, Filipp
You do not have the required permissions to view the files attached to this post.
Hello Vivian.

It seems that maxwell.exe (your script seems perfect) has a random crash closing the application when the denoised render has finished. We will try to find what is happening for the next version release, meanwhile you can try to run maxwell in a different way. I am not sure if this can be a solution (I have not tested it), but instead of calling "runMaxwell", you can try to use the python "subprocess" package by yourself, and kill the process when you consider that it is taking to much time (using timers).
Code: Select all
import subprocess
parameters = []
p  = subprocess.Popen(parameters)
# start timer here
while True:
  status = p.poll()
  # if status indicates that the process has finished
    # the process has finished, just leave the "poll loop"
  # if timer indicates that the render is taking too much time:
    p.terminate() # or p.send_signal(....), or p.kill() to force maxwell.exe to end and leave the "poll loop"
I hope this helps.
Hi Brany,
thanks for your response. When plugging in your code using "p = subprocess.Popen(parameters)...", the script is running but it stops to render after a very short time, producing output images of very low sampling rate. The second render pass is not started at all. Does that mean that the termination signal from "status = p.poll()" is received after each sampling level? Do you have any idea what's happening?
P.S. When maxwell crashes with the original code, only the image files for the first pass, but not for the denoiser were produced.
If maxwell crashes before the denoising process finished, this is worst than I though. We will try to fix this as soon as possible.

The details of the "poll" return value are unknown to me. Maybe you will have to test the values that poll returns without killing the application at all, and then check the proper value.
Sorry, we can't give high priority to this issue, and it seems hard to reproduce (I am not able to make it crash).

We can try to find a workaround anyway. Did you test the memory usage on your computer running the script? Maybe a memory leak is happening in your script and maxwell get stuck at some point if the RAM is full. I guess that this is not the problem since you use the freeScene method properly.

By the way, I see some code that is doing nothing::
Code: Select all
					# enable GPU rendering
					scene.setRenderParameter('STOP RENDER IF NO PHYSICAL MEMORY',0)
					scene.setRenderParameter('STOP RENDER IF EXTENSION ERROR',0)
this is modifying an already written to disk scene, so it doesn't affects the render at all.
round corners

Hi there, just a question, is the rhino rounded ed[…]

OMG! Now I understand the problem of darkening of […]

Hi! I have looked for the answer to this but so fa[…]

Settings do not stick

Quick update - if you save the viewport again (in […]