Updates from November, 2016 Toggle Comment Threads | Keyboard Shortcuts

  • frankiezafe 23:31 on 2016-11-27 Permalink | Reply
    Tags: , ,   


    Today, visually, it is ULTRA minimal.

    The two dots are 2 sound objects. The left one is muted and is related to pobject_3_object messages in the pd patch. The right one is on and is related to pobject_6_object messages in the pd patch.

    In human language, this means that the 3d objects are directly connected to the sound engine. For instance, when the right dot moves, it sends a message named “moved” to the sound. In this case, the message triggers a short sound.

    For developpers:

    • main class for sound objects: PSound
    • interface between Ogre thread and Puredata thread: PdSource

    Soon with more!

  • frankiezafe 18:40 on 2016-11-25 Permalink | Reply
    Tags: , , ,   


    Dynamic scenes loading.

    Based on an #XML description of the project, that looks like this:

    • <polymorph version=”0.1″ date=”20161124″>
      • <scenes>
        • <scene id=”3″>
          • <pobjects>
            • <plight name=”main_sun” visible=”1″ debug=”1″>
            • <pnode name=”floor” visible=”1″ debug=”0″>

    and so on, it is easy to load a new scene. The deletion and creation job is managed by a cool object call “PObjectManager” see: http://polymorph.cool/doxygen/classpolymorph_1_1_p_object_manager.html (thanks, doxygen!)

    In the example.1.xml, the key ‘n’ is binded to the method PObjectManager.nextScene().

    A little note: in the scene 1 (the middle one), the pile of plates has been done via a special tag:

    <repeat count=”20″ offset_pos=”0,10,0″ offset_dir=”0,5,0″ offset_scale=”-2,0,-2″ />

    When placed in a pnode, it will generate copies of the object automatically. Similar to array modifier of blender.

  • frankiezafe 17:52 on 2016-11-25 Permalink | Reply
    Tags: ,   


    First version of doxygen documentation.

    It’s quite cool to see the mental structure i’m building since several weeks come to life in the diagrams.

    There a huge work to be done to comment and clarify the code!

    The documentation is available online: http://polymorph.cool/doxygen/

  • frankiezafe 16:40 on 2016-11-24 Permalink | Reply
    Tags: achitecture, ,   


    New object for lights in polymorph package.

    The image above shows that plights can be manipulated with the same methods as pnodes. This seems obvious, but it required a serious refactoring of the existing code: from now on, all “visible objects”, including sound sources, inherits from a common object, called … PObject (unexepected, isn’t it).

    The advantage of doing so is that links can be created between any kind of objects, and all are linkable to bullet.

    Conceptually, it was also mandatory to use “smart” objects in the package, and therefore being able to say that some classes are polymorphic 🙂

  • frankiezafe 19:35 on 2016-11-20 Permalink | Reply
    Tags: , programming,   


    Here is the output and the code of the empty example. It is using polymorph package.

    Once installed (the tricky part, soon fixed with a magic installation script), you just have to extends PolymorphApplication class and start working.

    As you may notice, the class CustomApp does nothing on its own. It just calls the mother class’ methods. The purpose of this empty project is to enlight crucial methods to overwrite in order to start coding something.

    I’m now working on a basic example, showing how to add primitives, load meshes, add lights and animate them.

    • frankiezafe 21:34 on 2016-11-20 Permalink | Reply

      @xuv & @balt : i think it’s important to be obvious on what is polymorph and what is ogre by keeping the namespaces as they are. For instance, creating a PNode requires to call polymorph::PNode. When you want to create a vec3, there you have to call Ogre::Vector3.
      In the example above, the using namespace is only used in cpp => for all class params (.h), they have to be set this way. It will be explained in the basic example.
      What d’u think?

      • xuv 14:19 on 2016-11-21 Permalink | Reply

        @frankiezafe : seems coherent.

        • frankiezafe 15:53 on 2016-11-21 Permalink | Reply

          i’ve started working on a “PObject”, wich is a common ground for PNodes, PLights and PSounds. It’s a abstract object defining anyhting located in the 3d world, with possibility to attach them together or add physics on them.
          Result: ultra tuff conceptual work, using an abstract class + a template class for PObject – will work in a few days.

  • frankiezafe 17:05 on 2016-11-19 Permalink | Reply
    Tags: , , ,   

    Polymorph package is on its way!

    Until today, polymorph was a collection of Ogre addons, independent from each other. The approach has changed a lot during the development of Tuning score. All extra libraries are now linked into one big package:

    • Bullet – physical engine;
    • libPD – sound engine;
    • OSC – Open Sound Control messages, based on udp;
    • tinyXML – for project loading;
    • SDL – for gamepad and joysticks.

    The package uses a project file format, in XML + provides high-level objects and a base class containing all mandatory methods to manage a game:

    • scene & resources loading;
    • window management and events;
    • keyboard and mouse events.

    A large documentation has to be written, but programming architecture is now fixed.

  • frankiezafe 21:29 on 2016-11-16 Permalink | Reply
    Tags: , , ,   

    Finding cycles in networks.


    Since several days, i was trying to solve a problem that will occur in #peel: how to broke a connection when the connection is part of a “cycle” (i’ve called it “loop” until now). This problem is illustrated here:

    The beginning of the answer is in wikipedia and uses graph theory >> https://en.wikipedia.org/wiki/Cycle_(graph_theory)

    Can’t wait to start coding that 🙂

  • frankiezafe 20:27 on 2016-11-09 Permalink | Reply
    Tags: , Menthol, , timeline, ,   

    Mentholed blender

    related issue in bitbucket



    A long time ago (2 years maybe), i’ve worked with yacine sebti to make a bridge between a timeline editor in max/msp (yacine’s world) and openframeworks (my former world). The project was called Menthol. This prototype has been used in the void project.

    The openframeworks addon is here: https://bitbucket.org/frankiezafe/ofxmenthol

    During a 1 hour phone call with yacine, we discussed about how to build a standalone UI for the project. Several ideas where floating, such as a fully custom UI in openframeworks or a QT version, such as Iannix. This one is very good looking, even if yacine and i think that it is not precise enough for our usage.

    Then, like each time we spoke about this, blender pops in.

    I always liked the graph and the dope sheet panels. It’s a superb 2d simplification, with a lot of features (i just discovered the modifiers, my head is spinnin’!). I quickly draft the modifications to do on these panels to work as a standalone timeline editor.

    I’ll investigate this in december!

    nb: this feature is part of the polymorph engine presentation :), see here

    • xuv 20:59 on 2016-11-09 Permalink | Reply

      Just saying… Not perfect… but [CTRL]+[T] give you time in seconds instead or next to the frame number (It’s unfortunately not consistent)

  • frankiezafe 18:01 on 2016-11-09 Permalink | Reply
    Tags: , , osx, , virtual machine   


    Playing to tuning scores on osx requires several steps, but it worked quite smoothly.

    • Installation of virtual box – https://www.virtualbox.org/
    • Download of linux mint 18 64 bits image – https://www.linuxmint.com/download.php
    • Make a disk of 15Gb (min 10Gb are required for mint)
    • To have local IP (router range), set network to bridged and use ethernet – not tested with wifi
    • Install mint
    • Update mint
    • Copy/paste Tuning score exec folder (not availabe online yet…)
    • And done!

    Because there no 3d acceleration available on the configuration i used, i had to give 3 cores out of 4 to the vm to reach a decent framerate. There no FSAA available either. But Lisa Nelson will at least be able to take something back to the states!

  • frankiezafe 19:24 on 2016-11-02 Permalink | Reply
    Tags: , , ,   

    Tuning scores, first screenshots of the game.

    Because we present the first prototype to Lisa Nelson and the Contredanse crew very soon, we rushed a lot this week and first results are promising:

    • a bunch of objects are ready to be manipulated;
    • it’s possible to play on 2 different computers seamlessly (identical physical world);
    • each player can change his/her point of view and see what the other is looking at (the eye in the sky);

    And, the most important, the playfulness of being in a “sensitive” virtual environment. Every little movement may have an impact on several objects. And looking at the other propositions is as stimulating as playing yourself.

    There still a lot of things to fine-tune, in the code and the models.

    The next big step is add some sounds, to complete the experience.




Compose new post
Next post/Next comment
Previous post/Previous comment
Show/Hide comments
Go to top
Go to login
Show/Hide help
shift + esc