[Bf-committers] GSoC Idea: Blender Replay

Arystan D arystan.bugzilla at gmail.com
Sat Mar 21 13:42:58 CET 2009


Action Recording in Blender or Blender Replay


What Is This?

Blender Replay is a system that interactively records and plays user
actions. Recordings are stored in files (python scripts or text files)
which can then be played on any computer with Blender installed.  This
has become possible with introduction of the operator system in
Blender 2.5.


Benefits

With Blender Replay, learning Blender becomes easier :-)
Users can exchange recordings to learn something new.
Interactive unit tests can be made with Replay and Python.


The Approach

By hooking (unobtrusively) into Blender operator system, Replay will
record operators (and correspoding parameter values) invoked by a user
during Blender work session.

This approach, when compared to "just recording user input", provides
the following advantages:

- portability: recordings will be cross-platform and UI-independent
- compatibility: as long as operators don't change names and
  parameters, in newer Blender versions old recordings will stay
  playable
- Replay will not break if a button changes position or any other UI
  element is updated
- Replay will allow re-recording actions. You can take someone's
  recording, play it until some point, pause and continue recording
  from there.

To be useful, Replay will also record and apply time intervals between
operator calls and will do smooth transitions for modal operators
(like view rotate for example). This also allows to have configurable
playback speed (normal, 2x, 4x, etc.).


Limitations

For Replay to be consistent, the following limitations have to be
applied:
- during playback and in "paused" mode prevent user from modifiying
  the context. A user will only be able to do so when he "stops"
  playback


Issues

- other ways to edit recordings
- implementation :-)


P.S.

My Blender coding experience is limited to operator porting so there
are problems I may have missed. K-3D's interactive tutorials and Emacs
macros were the source of inspiration. Is this idea viable? feasible?
(Anyone is welcome for suggestions/modifications)

Arystan (kazanbas on IRC)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/bf-committers/attachments/20090321/315e5ecc/attachment.htm 


More information about the Bf-committers mailing list