Serious suggestion: A render status desklet?

What about a desklet that displays the status of a render? There would need to be two sets of code - The set for still renders, and the set for animations.

I don’t know how the set for stills would get it’s source information.

But for animations, it would be simple enough to take the difference from the start and end frames, set by the user for the render, as the basis for the desklet.

This frame count, divided by 100, gives you 1% of the total, obviously.

Do the same for the width of the element used to (horizontally, at least) represent the status at the render. So the number of pixels divided by 100 gives you 1% of the number of pixels.

Then you just link between the number of frames rendered and the number of pixels used to indicate the render’s status. Every time the number of frames that has been rendered increases by (the total number of frames to be rendered in total / 100), then make the next set of pixels (total amount of pixels used /100) change colour.


f = frames to render
p = number of pixels for the status bar
i = 0
while render isn’t finished, do
for i = 0 to 100 do
if number of frames already rendered = (f/100)i then
colour the pixels (p/100
i) of the bar

Or something like that. It might need to change for to suit animations with a smaller number of frames, I’m not sure.

I’m not a very experienced or intelligent programmer, by any means. But this seems feasible.

I know such a feature would be useful for me. Whenever I’m rendering, particularly when the render is a big one, then Blender becomes unresponsive, and ignorable, and sometimes the render window isn’t worth looking at until the render’s finished. It would be handy to have this.

Any thoughts? Would you like to have this? Could it be easily made?


I think the interface should just become multithreaded (or just keep on looping through the main event loop) instead.

Desklets sound nice, but it’s just a patch for an issue that should be fixed inside Blender.

going through the whole main loop could slow down the rendering more than spawning a new thread for it no?


Depends on what you would do. If it would be possible to continue the use of Blender, then it would obviously slow down. If you would do what you always do (eating from your nose, playing with the mouse, feeding the cat, whatever…), it wouldn’t slow down unless you were rendering on a 386sx, in which case it would not be a smart move to keep moving your mouse because that will eat precious cpu cycles as well.

The main loop in Blender doesn’t really do much if you don’t do much. Take a look at blender_root/source/src/editscreen.c for more information (screenmain).

Muti-threaded UI would be very nice.

I agree … I would gladly put up with longer render times for the ability to do stuff while I’m rendering.

There is another way, through a python script that launches a window-less blender process in the background, to render your animation, and updates a progress bar in the main blender window. I had written such a script back when there was no serious thread support in Blender so that you could launch multiple blenders in the bg, one for each bunch of frames… Anyway, if anyone’s interested I might dig it out.

Most interested. Nice one nikosg.
Another option is good ol’ farmer joe

Actually, I had a look at my old script and all the pain of using Blender’s event system came back to me… The only way I could see is by using the Blender progress bar (the one in the menu bar) which is non-interactive.

Nah, the event system rewrite (which is pending for a few years now) is the only thing that can make such things possible without using horrible hacks (draw scriptlinks, e.g.)

That in reference to the desklet? Or being able to use Blender even when it’s rendering?

What does everyone actually think about the desklet? So far all I’ve heard about is being able to use Blender even when rendering. Admittedly, it would be nice, but I’d prefer a desklet - There’s nothing I can do in Blender when it’s rendering, usually, until I see the output of a render.

i have no idea what desklet is…
but if i have something a bit lenghtier to render, i just launch up another konsole, and start blender render from there… this way i can continue modelling/animating… and if i need status check, i just see what blender is speaking to me on the konsole :slight_smile:

edit: i also had python script for that, but i kept loosing the script, so nowadays i just do it manually…


I’m down for whatever provides a progress bar w/ rendering status.

If you’re rendering anything that takes long enough that you can do anything within blender then you should be rendering from a console.

Not really.

basse, if you’ve ever burned anything to disc with K3B, then you may have seen that it produces a little box on the screen that displays the status of the process.

ah right, that thing. but i don’t really stare at that box either, while it burns. i just turn back to other application and keep working, until cd pops out. :slight_smile:

in blender, i put the animation to render from console… and every once in awhile check the console in what frame we are going… if i’m doing still frame that takes a bit to render (rare cases for me, heh) i launch separate blender for that, and status can be seen when i check the blender and see how much of image is visible :slight_smile:

i don’t really care much for separate popup to display status… but console could be saying more when doing still… and gui, could be updating the blender statusbar… like it does for some effects and scripts.


Actually, at least on Windows OS, when you are rendering without using Blender in fullscreen mode (blender.exe -W), the rendering window starts to act up, it hides behind the main Blender window and when you finally get it in the front, clicking on the taskbar button for it to appear after it finished the actual bucket (which not always work and you have to click again with the risk to hide again the rendering window without intention), when it comes back to front, the already rendered buckets appear black.

Maybe with Blender’s renderer you can know the status because the order of buckets is always the same, but with Yafray the order is random, so all what was rendered dissapears and it will be only visible the next bucket.

i don’t really care much for separate popup to display status…
The status doesn’t have to be on a separate pop-up necessarily, could be just a thin line at the top of the rendering window.

wouldn’t be an external Blender Render do that job?

thats why the console was mentioned… :slight_smile:

I agree with basse,

it would be nice if this job could be automated, like when you hit render it starts another blender thread. Works easy under windows, however in OS X when you double click the Blender icon it just transfers you to the currently running application.