[Bf-committers] Patch #6161 updated

Early Ehlinger earlye at gmail.com
Wed Sep 17 23:06:14 CEST 2008

Hi Dalai,

On Wed, Sep 17, 2008 at 3:14 PM, Dalai Felinto <dfelinto at gmail.com> wrote:

> It looks very usefull.

Thanks!  I hope it is - one of the stumbling blocks we've been having in
getting this into the source trunk is the concern that nobody but us will
find utility in it.  I'm glad to see that there's at least one other person
out there who could, because, well, 1 is infinitely times as many as 0 :-)

> I'm currently writing a Python script to be used as a ScriptLink that
> report by email the current status of an animation, particles baking,
> fluid baking, ...
> The goal is to let the computer thinking as you go work in other
> computers or go to the beach and let the iphone tells you when it is
> time to work again :)

Getting an email with progress info would be very easy to do with this patch
- simply have the callback function send an email (or not) to let you know
how things are progressing.  On the farm, we do something very similar - we
store the progress info into a file that is later handed off to the end

What's more, you could have the progress email provide more fine-grained
detail than simply "Frame 5 has started."  I.e., it could say something like
"As of 4:00 pm, Frame 5 has processed 5,432,124 of 6,000,000 particles.  In
the last 1 hr, 3 frames and 23,432,124 particles have been processed.  Total
frames left to complete process after frame 5: 64"

Therefore I have some thoughts related to this:
> 1) I didn't look to the patch, but I saw the Patch Tracker comments
> [1]. Do you think it would be possible to enable a progression output
> to Particles Baking as well ?

Absolutely.   It would be a simple matter of adding a call to Blender_Trace(
.... ) inside the particle baking code.  I'm not familiar with that area of
the code, but I find it highly unlikely that it would be difficult to
instrument with tracing functionality.

> 2) In your code there is a Python API to access the output log from
> Blender?

The way this patch works is that you write a function in Python, and then
ask Blender to call your function.  The python looks something like this:

    import Blender

    def rpBlenderCallbackSvn( sFile , nLine , sMessage , nFilterMode ):
        print "[RPBCB]" , sFile , "(" , nLine , ") - " , sMessage;

    Blender.Set( "traceCallback" , rpBlenderCallbackSvn );
    Blender.Set( "traceFilterOn" , Blender.btfm_RenderProgress );

One can easily imagine something like:

    Blender.Set( "traceFilterOn" , Blender.btfm_ParticleBakeProgress );

You would then have your rpBlenderCallbackSvn( ... ) function parse sMessage
for useful information, decide when to send emails, etc.

3) I'm having troubles in using ScriptLink to report a progression.
> Right now I'm using FrameChanged since it works the same way with
> almost [2] all of the hard-stuff.
> Is it possible/hard to enable a ScriptLink that is raised after the
> frame change+Redraw, or after the render is finished? Something like:
> FrameCalculationsFinished

I'm not familiar with ScriptLink at all, but if I understand your goal
correctly, it should be very easy to accomplish with this patch - simply
watch for the right sMessage in your rpBlenderCallbackSvn, and send an email
to your iPhone when that message arrives.

> Dalai Felinto
> http://blenderecia.orgfree.com
> 1 -
> https://projects.blender.org/tracker/index.php?func=detail&aid=6161&group_id=9&atid=127
> 2 -
> https://projects.blender.org/tracker/index.php?func=detail&aid=17644&group_id=9&atid=125
> 2008/9/17 Early Ehlinger <earlye at gmail.com>:
> > I finally had some time to re-synch the ResPower blender tracing patch
> with
> > the latest SVN.  This is the patch that ResPower uses to provide progress
> > information in its render logs, since viewing render nodes' desktops is
> > expensive compared to sending a few lines of text to a customer's web
> > browser.
> >
> > The way it works is that it exposes a new python API whereby a script can
> > request that Blender send trace messages to a python function.  On the
> > ResPower farm, the python function simply prints the output to the
> console,
> > and the farm management software reads the console and saves the output
> to
> > the log.
> >
> > The instrumentation here is mainly rendering-centric, but the patch can
> be
> > extended to support other portions of the code as well.  This would be
> > useful, for example, to have end-users generate a log file to track down
> > difficult-to-reproduce bugs.  (e.g., "run this script, email me the log
> file
> > when the bug occurs!" )
> >
> > I would really like to get this patch into the trunk so that we can start
> to
> > provide support for the official releases of Blender more quickly
> (download
> > and deploy, as opposed to download, patch, build, and deploy), and also
> so
> > we can add support for the svn version of Blender for our more advanced
> > users.  We can't do this now as patching the files every day would be a
> > major hassle.
> >
> > The default behavior should be indisginquishable from not having the
> patch,
> > i.e., you should only notice a difference if you turn on the
> functionality
> > from python.  See /source/tools/test-blender-trace.py for an example of
> > using it.
> >
> > -- Early Ehlinger, President, ResPower, Inc.
> >
> > _______________________________________________
> > Bf-committers mailing list
> > Bf-committers at blender.org
> > http://lists.blender.org/mailman/listinfo/bf-committers
> >
> >
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/bf-committers/attachments/20080917/8043d754/attachment-0001.htm 

More information about the Bf-committers mailing list