Recent Updates Toggle Comment Threads | Keyboard Shortcuts

  • frankiezafe 20:01 on 2016-10-21 Permalink | Reply
    Tags: ,   

    Today: XML

    Until now, @louise was not able to access objects position and configuration… I guess it was quite frustrating for her, as she is working on the assets of the Tuning Score game.

    Now it’s better. Based on the work made for #PEEL, a XML description of the objects to load is available.

    It looks like this:


    Each polymorph node is an object having:

    • an origin transformation;
    • a local transformation, only applied on the mesh attached to this node, not its children;
    • a primitive to display, when you don’t need to load a mesh – available: cube, sphere, plane & empty (very useful, i got it now);
    • a mesh to display;
    • a material, when you want to use something else than the default one;
    • a bullet configuration, for physics, dynamic or static, with the possibility to use a special mesh and a configuration tag that gives access to a few physical parameters.

    I’m going to deploy this on louise computer and it will be over for this week!

    • frankiezafe 00:11 on 2016-10-22 Permalink | Reply

      note: provide a DTD to validate and explains the XML > check if tinyxml supports it.

  • frankiezafe 19:22 on 2016-10-19 Permalink | Reply
    Tags: , , ,   

    Long time no seen!

    After fixing tiny and absolutly not sexy issues in bullet code, programming went to an even less fancy topic: efficient temporary storage of udp packets.

    Indeed, OSC messages (basically udp messages) arrives asynchronously. The display thread is running at ~60fps, but messages can pop in at any time. To avoid a display thread interruption each time a message is received, they have to be stored until the main thread request them.

    The first approach was to push them in a std::vector. If the main thread never requested them, this vector might eventually become VERY long. To solve that, setting a maximum size seemed to be a good option. Each time a new message is received, if the vector is longer than maximum, the first element, witch is also the oldest, is deleted.

    There’s 2 important performance issues in this approach (fixed by the new one :)):

    • removing the first item ( =>resizing the vector) and push back an item at each reception ( =>resizing the vector once again) is not efficient at all;
    • read and write access to the same object, implying that you can not write while reading and reverse.

    Sooner in my life, someone told me about ring buffer. The name was nice and the idea behind was appealing!

    Here is what has been implemented in the class that receives and parses the OSC messages (readable text below the image, click to enlarge).


    polymorph::POscReceiver – ring buffer logic

    POscReceiver uses ring buffer to store received messages temporarily.
    If its capacity is 10, it uses an array of 10 PMessageData.
    When the maximum number of messages is reached, the oldest message is overwritten.
    The position of the oldest one is shifted by one each time a new message is stored in an “overflowed” array.


    polymorph::POscReceiver – read and write buffer

    POscReceiver uses 2 ring buffers.
    Reception and parsing are managed in a separated thread.
    Buffers are swapped when the main process request a read access.

  • frankiezafe 18:53 on 2016-10-12 Permalink | Reply
    Tags: , , ,   

    Documentation about how to prepare meshes (structure, materials, etc.) usable by bullet in polymorph engine.


    The documentation of the project is not yet ready, as you might see if you surf a bit in the wiki…


  • frankiezafe 19:12 on 2016-10-10 Permalink | Reply
    Tags: , ,   

    Precise object grabbing, require a bit of math, but it worst the headache!







  • frankiezafe 18:18 on 2016-10-09 Permalink | Reply
    Tags: , ogre, ,   

    After some posts with images, schemas and long technical descriptions, here is the result.

    The chain is breaking when there’s too much stress along the links…

  • frankiezafe 18:31 on 2016-10-07 Permalink | Reply
    Tags: , , doxygen   

    First generation of documentation with doxygen and … OMG! it’s a huge mess!

    Defining an architecture and clean namespaces is really required, and must to be done as soon as possible.

    Doc is here:


  • frankiezafe 17:22 on 2016-10-06 Permalink | Reply
    Tags: , ,   

    Demo with of a chain using bullet:



    Meshes (displayable and physical) are desgned in #blender by @louise !



  • frankiezafe 14:55 on 2016-10-06 Permalink | Reply
    Tags: , ,   

    All bullet’s primitives are now available:

    • btBoxShape;
    • btSphereShape;
    • btCapsuleShape;
    • btCylinderShape;
    • & btConeShape.

    The link with blender is make easier via 2 python scripts ( see Two python scripts… ).

    A default fallback to convex hulls still has to be done.


  • frankiezafe 13:25 on 2016-10-06 Permalink | Reply
    Tags: ,   

    Two python scripts to help work in blender:

    • one script,, generate a bunch of “ogre-bullet” material, with correct prefixes;
    • second one,, applies these materials on selected objects depending on the type of rigidbody attached.

    This process must be done before joining all the objects into 1 mesh and exporting it for ogre.


    Scripts are available in PE.2.0 assets folder.

  • frankiezafe 08:56 on 2016-10-06 Permalink | Reply
    Tags: ,   

    Notes about cones for tutorial.



    Original Vertices: 1155
    Exported Vertices: 6527
    Original Faces: 2192
    Exported Triangles: 2222
    MESHES: 2
    Extended Report:
    . mine-physics
    . mine
    . sphere_physcis01
    . cone_physics01
    . cone_physics02
    . cone_physics03
    . cone_physics04
    . cone_physics05
    . cone_physics06
    . cone_physics07
    . cone_physics08
    . cone_physcis09
    . cone_physcis10
    . cone_physcis11
    . cone_physcis12
    . cone_physics13
    . cone_physcis14
    . cone_physcis15
    . cone_physics16
    . cone_physics17
    . cone_physcis18
    . cone_physics19
    . cone_physics20
    . mine-mat

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