Pyppet for Blender Update

Pyppet 090109Pyppet 1.0 is nearly finished with development, I am fixing the final bugs now and adding the last few features.

I have ported it to work with Blender 2.49, it will not work yet with Blender2.5svn. Recently i have added physics smoothing to give the puppets more ease-in/out and many physics options, improved the wiimote controls, and load/save controllers config. The latest beta will *should* work on WinXP/Vista and Ubuntu Hardy. The documentation is not yet finished, but mostly there.

File Download

Brett

http://www.mediafire.com/?sharekey=ef922260fcd0fa931686155677bb268566bee075ac473ca2


It looks like you're using an ad blocker. I really need the income to keep this site running, so please enable advertisements on BlenderNation, or leave me a small donation. Everything helps!

Thanks!
  • Iconoclast

    That computer is about as loud as mine. What’s that… 8 fans?

  • RNS

    Great job!!!

  • http://thereisnoend.org Martin

    What’s pyppet?

  • jap

    pyppet is a pupetiring extension to blender for fast and easy animation great tool
    youl need a game control

  • Guy incognito

    @Martin using wii motes to control physics simulated puppets. Think marionettes.

  • http://www.openoctave.org ccherrett

    I don’t understand how it would be used.

  • blndrusr

    Could Durian use this for recording sword-play?
    —————————————————–

    Awesome contribution Brett!

    Once in 2.5, this may be the icing on the cake for a few studios who are looking to migrate some of their pipeline to Blender.

    Looking forward to seeing regular updates on this!

    I’m certainly curious about using this in a future game dev project.

    Thanks for the great contribution!

  • http://www.reynantem.blogspot.com reyn

    Cool, Brett! ^_^ Go go go!

    -Reyn

  • freen

    Great stuff!!
    Time to get a wiimote, I guess…

    Is there a project website?
    (Yes, yes, I’m about to google it, but a link would be helpful)

  • e1

    Hi,

    Looks very promising, but I can’t get it to launch.
    Any clues as to how to solve this?

    Thanks,

    e1

    C:\Program Files\Graphics\3D\blender-2.49a-windows\Pyppet\pyppet>..\sdk.Windows\
    blender\blender.exe -noglsl -P wrapper.py
    Compiled with Python version 2.5.2.
    Checking for installed Python… got it!
    Traceback (most recent call last):
    File “wrapper.py”, line 16, in
    import gtk, gobject, pango
    ImportError: No module named gtk

    Error executing Python script from command-line:
    wrapper.py (at line 16).

  • jin

    you could probably use TRACKIR or even better, a webcam and FREETRACK to use pyppet for such things as (as mentioned) some swordplay and also, and maybe even more usefully, a “HAND HELD CAMERA”!

    all you need is a little reflector or ir emitting armature and then move it around to “mocap” a handheld camera… and since blender is so fast on the timeline scrub, you could probably finish final character animation and then “shoot it” with the hand held camera during the performance!

    jin

  • jin

    oh… and/or ipodtouch/iphone or any other accelerometer based controlled in theory could be used too!

    trackir or freetrack would be an optical mocap kinda solution….

    jin

  • e1

    I think I made some progress after reinstalling GTK,
    but still running into some issues.
    I get some of the side menus, but not the main menu.

    starting pyppet subprocess

    hello client
    client init complete
    Traceback (most recent call last):
    File “fuscated.py”, line 28, in
    NameError: name ‘_portaudio’ is not defined
    Traceback (most recent call last):
    File “wrapper.py”, line 693, in
    e.run()
    File “wrapper.py”, line 493, in run
    data = read_pipe_data( self._stdout )
    File “C:\Program Files\Graphics\3D\blender-2.49a-windows\Pyppet\pyppet\blender
    server.py”, line 80, in read_pipe_data
    lenlen_data_int = pipe.read( ord(lenlen_data_int_as_char) )
    TypeError: ord() expected a character, but string of length 0 found

    Error executing Python script from command-line:
    wrapper.py (at line 493).

  • saverio

    It’s a great idea, but it is a wiimote sufficient to control an entire character?
    maybe 2 wiimote, and knobs, and pedals…

  • granny_biggins

    Does the Wii-motion plus extension work seamlessly with the Linux/Windows drivers? In other words, does it just make the existing output of the controller more detailed?

    @ccherrett

    It seems like a pretty good way of testing how your character moves. Especially when they’re covered in soft body sims like the one in the video.

  • goathead

    @blndrusr,
    i was curious how well it would work for sword-play, i did this test just now, see the youtube below. My computer is not quite fast enough to do screen capturing and run this character, without the capturing it is responsive. I did notice that with a single wiimote you can have good control over one or two types of swings. For more control multiple wiimotes would work better, one say just for position, and the other for rotation. Note that i’m not using the IR, so there is some randomness to it.

    @e1,
    the installer is picky, i have noticed issues with Vista not fully installing python. Were you able to install pyaudio? It looks like thats the last thing you are missing.

    @saverio,
    a single wiimote, or single gamepad even, its enough to control an entire character, but not all at once. You can use Pyppet to apply multiple additive animation passes, i prefer this method rather than trying to perform everything at once.

    http://www.youtube.com/watch?v=iRJl3_UIwas

  • n00bhaxor

    Hah! That’s pretty cool. Looks like a spore creature.

  • e1

    Thanks for your answer :)

    I tried installing python 2.5.2 and 2.5.4 and added pyaudio as a second step
    But I get the same error.

    I’ve used the wii on my pc to track motion before, so I was looking forward to trying
    your puppetry software. I guess this is a bit too technical for me to troubleshoot.

    I’m open to any other (relatively simple) suggestions …

    e1

  • Marc D

    Just a FYI. Audacity has a great noise removal feature. It works so well it makes things almost too silent! My computer is fairly loud, but using this feature I was able to make a tutorial with no back ground noise besides me and my keyboard.

    Anyway, fantastic work. This type of interaction will open all sorts of new animation techniques to the blender community. Thanks for sharing and keep up the good work!

  • http://www.funkboxing.com teldredge

    This is freaking awesome!
    I downloaded it and I’m going to give it a shot.
    Thanks for the hard work and letting the rest of us check it out.

  • myselfhimself

    isn’t there some diagram / explanation somewhere about the architecture of Pyppet that makes gtk(?) able to run on top of blender and communicate bidirectionnally with it ?

  • Flutterby

    So… will this also work with a Sixaxis-Controller? (what about two for both-handed play?)

  • http://home.deds.nl/~mp/ ysvry

    great work.

  • goathead

    @Flutterby,
    sorry no six-axis support yet, if Blender exposes it via Python API i will support them.

    @myselfhimself,
    Its tricky integrating PyGTK and Blender, my tips and tricks:
    1. for Windows delete iconv.dll, for linux compile without ICONV
    ( it appears to use pango, but binary incompatible with pygtk )
    2. do not use Window.QRead, this will block until Blender gets mouse focus again, so if using an external GUI like PyGTK, you can not update the GTK context while the mouse its over its widgets.
    3. To be cross platform do not open blender with the -W commandline.
    4. If you want a fullscreen interface, then you are forced to use GTK popups, and they have many limitations, for example they can not take text input. Note that sliders, buttons, radio boxes, and most if not all container widgets do work with popups.

    The Bidirectional communication is done over a binary pipe, that passes pickled data. Since we are not sending many objects over the pipe per frame, the serialize/deserialize overhead is small (this is done with CPickle so its fast); it is possible this method is in some cases faster than running in Blender’s internal process space – because while Blender is updating its scenegraph and rendering, Pyppet is able to run unblocked until the next framesync, and the OS will buffer the pipe.

    @e1,
    you have uncovered more than one bug for Windows, i just did a test and i see the root of your problems, please wait till the next beta, i should have these things fixed and new beta posted by next week.

  • Pingback: Create Digital Motion » Free Pyppet for Blender Maturing Fast; Animate 3D Characters, Video, Use Wiimote

  • Guy incognito

    @goathead
    I have also run into the a python error on the same line as e1′s It looks to be the same traceback as well. If I can provide any further useful information to you please ask. I look forward to the next beta :) thanks

  • http://chromatouch.wordpress.com/ leon trimble

    on windows i’m getting
    Traceback (most recent call last):
    File “”, line 1, in <module
    File "C:\downloads\PyppetBeta-aug11
    blender\scripts\pyppetplugin.py", lin
    from wrapper import *
    ImportError: No module named wrapper

  • http://www.hellocatfood.com Antonio Roberts

    I’m having problems installing this under Ubuntu Jaunty. I get the following error after running the ubuntu_installer.sh file

    gcc-3.4: sound/sound.cpp: C++ compiler not installed on this system
    error: command ‘gcc-3.4′ failed with exit status 1