Recent Updates Toggle Comment Threads | Keyboard Shortcuts

  • frankiezafe 22:03 on 2017-01-22 Permalink | Reply
    Tags: , , , , RTT   

    Currently working on PCamera class (a class to manage … camera!). The new samples/0.1/ shows how to create one and render it onto a texture.

    In these images, the pink texture on the cube is the rendering of the camera rotating in the center of the scene, the tall pink cone. It is very ogry to send the camera to the texture:

    RenderTexture * rt = texture->getBuffer( )->getRenderTarget( );
    custom_wp = compositorMgr->addWorkspace( sceneMgr, rt, custom_cam.getOgreCam( ), cwName, true );
    custom_mat->getTechnique( 0 )->getPass( 0 )->createTextureUnitState( )->setTexture( texture );

    There should be a way to make this a bit more handy, I’ll look into it sooner.

  • frankiezafe 13:08 on 2017-01-17 Permalink | Reply
    Tags: , , , , ,   


    New example ready for skeletons manipulation.

    In the example, the skeleton debugging is enabled by default. It shows the bones hierarchy and the local orientation of each bone.

    There is 3 transformation spaces for bones, inherited from Ogre3D:

    • LOCAL
    • PARENT
    • WORLD

    All methods to get or set orientation, scale and position are sensitive to this value, except the moveBone methods, not yet finished.

    The example shows also the different ways to retrieve information about the skeleton: list of bone’s name, list of bone objects, access via name, id or pointer, etc.

    The beautiful model i destroy if from Sophie Khan and distributed by #additivism.

  • eurydice 11:23 on 2017-01-17 Permalink | Reply
    Tags: , ,   



    First little game without pretention done while learning Openframeworks and C++ during my traineeship !

  • frankiezafe 23:59 on 2017-01-13 Permalink | Reply
    Tags: , , , , visualisation   




    Working on a debugging view for skeletons, a good way to learn how #ogre3d is storing skeletal data. There’s a scaling issue: the points in the face are not correctly placed, they should be at the lips borders, at the basis of the nose and closer to the eyebrows.

    The visualisation is not the same as in blender: bones are linked to their parent head, not tail. It’s simply because the information about the size of the bone is not available in ogre. The only information available for a bone are its position and orientation.

    A fix will come soon!

  • frankiezafe 17:33 on 2017-01-12 Permalink | Reply
    Tags: , , , , ,   


    Preparation of a 3d model for skeleton example. The model is from Sophie Kahn and distributed by #additivism (their selection is really good!).

    Image of the model in the 3d additivism cookbook:


    First step was to reduce (a lot) the number of faces of the model ( around 75% ), generate a UV map and link it to an armature, in blender, obviously. Note that the armature is displayed using Envelope. I never use it to work, but i find it lovely for screenshots.



    The skinning was tricky, due to the mesh mess. There are no arms for instance.

    After the export and conversion via OgreXMLconverter, the model has been easily imported in the engine.

    A lot of fine-tuning has been done on the material, to display solid and wireframe + having a light emission of the wireframe pass in the shadows.

    Here is the material definition:

    pass sophiekhan-mat
    	ambient 0.8 0.8 0.8 1.0
    	diffuse 0.8 0.8 0.8 1.0
    	specular 0.02 0.05 0.05 1.0 0.1
    	emissive 0.0 0.0 0.0 1.0
    	alpha_to_coverage off
    	colour_write on
    	cull_hardware clockwise
    	depth_check on
    	depth_func less_equal
    	depth_write on
    	light_clip_planes off
    	light_scissor off
    	lighting on
    	normalise_normals off
    	polygon_mode solid
    	scene_blend one zero
    	scene_blend_op add
    	shading gouraud
    	transparent_sorting on
    pass sophiekhan-wf
    	ambient 0.0 0.0 0.0 1.0
    	diffuse 0.85 0.7 0.75 1.0
    	specular 0.5 0.5 0.5 1.0 30.2
    	emissive 0.31 0.26 0.2 1.0
    	polygon_mode wireframe
    	transparent_sorting on

    Other screenshots:



  • frankiezafe 19:24 on 2017-01-11 Permalink | Reply
    Tags: , , glitch, , , opengl,   





















    Cool day today: the creation of the example.glitch was quite fun.
    The example demonstrate a bit more extensively the usage of the ogre’s compositor (see here) and the interaction with shaders.

    If you test the example, ckeck CustomApp::createCompositor: you’ll find comments about how to interact with the shader’suniform.

    The superb model in this scene is gearthing4 by shivinteger, distributed by #additivism.

    • xuv 00:57 on 2017-01-12 Permalink | Reply

      Wow. Looks awesome. Indeed, add some sound and it’s a finished piece. 🙂

  • frankiezafe 20:13 on 2017-01-10 Permalink | Reply
    Tags: , ,   







    New example about compositor and shader (example.compositor).

    The example concerns the definition of a custom compositor. In Ogre3d, a compositor is a serie of post-processing nodes attached to the camera. It is the place where the image displayed at each frame is created.

    In the example, there’s a shader attach to the background of the window that renders a blurred circle. The shader params can be modifed RT via the mouse.

    • Moving the mouse change the red and green channels of the center color.
    • Dragging with left button modify the radius of the circle.
    • Dragging with right button modify the center of the circle.
      • Compositor is a really strong feature of Ogre, even if it’s a quite difficult one!

  • xuv 17:35 on 2017-01-09 Permalink | Reply
    Tags: , installation, ,   

    Polymorph Engine on ArchLinux 

    Thanks to the great work and tutorial from @frankiezafe, I managed to compile and run the basic examples of Polymorph on an ArchLinux system. I had to make a few changes to the documentation and find the right flags for some libraries (instructions here). But everything seems to be running smoothly. More tests to come later, I guess.

    ArchLinux screenshot running Polymorph Engnie basic sample


  • frankiezafe 13:24 on 2017-01-09 Permalink | Reply
    Tags: , , repository   


    Big revision of the repository structure this morning.

    • assets: contains blender project & python scripts, ogre 2.0 materials, puredata & processing patches;
    • custom: Ogre classes overload or common configuration files, to deplou in SDK folder;
    • empty.0.1: an empty project to start with;
    • package: the polymorph engine, containing source code;
    • samples: a folder containing examples to be used as tutorials;
    • scripts: bash scripts to install polymorph and its examples.

    A lot of doc to be written!

  • frankiezafe 22:19 on 2017-01-06 Permalink | Reply
    Tags: , , ,   




    First version of an installation script for linux is ready. It updates system libs, gather repositories, compiles and installs a big bunch of libraries and finally launch a basic example.

    Test machine specs:

    • xubuntu 16.04 64bits (running in a VM)
    • 4 core CPU
    • 2048MB of RAM
    • a weak internet connection

    Complete duration: 25m.

    Find the script and a manual procedure here:

    See the video log here:

  • frankiezafe 18:14 on 2017-01-04 Permalink | Reply
    Tags: , ,   


    Planning an install party (next tuesday 10/01/2016 TO BE CONFIRMED) at the WTC with @xuv & @ptr_h to test the installation guide of the polymorph engine. If you want to be part of it, no probl’, everybody is welcome, just let me know!

    Note: the installation guide will be completed this week for linux. A guide for windows will follow.

  • frankiezafe 12:54 on 2017-01-04 Permalink | Reply
    Tags: , , fosdem,   


    Updates the engine wiki done:

    • guide for project setup with cmake
    • guide for project import in netbeans

    I realise that the installation procedure is not complete yet, and it must be done before fosdem. It’s becoming urgent!

  • frankiezafe 23:42 on 2017-01-03 Permalink | Reply
    Tags: , , , ,   


    Today, a lot of bug fixes on the basic classes of the polymorph packages.

    New: it is now possible to declare the resources folders in the XML! The common resources.cfg of Ogre can be replaced by a configuration.xml, placed in the same folder as the exec.

    The resources.cfg was looking like this:



    In the XML, it’s converted to this, with control over recursivity and read access.

            <group name=”Essential”>
                <resource path=”../media/packs/” type=”Zip”/>
            <group name=”General”>
                <resource path=”../media/models” type=”FileSystem” recursive=”1″ readonly=”0″/>
                <resource path=”../media/materials” type=”FileSystem” recursive=”1″ readonly=”0″/>
                <resource path=”../media/materials/textures” type=”FileSystem” recursive=”1″ readonly=”0″/>

    The sreenshot comes from an evolution of the XML example, see Dynamic scenes loading

  • frankiezafe 22:27 on 2016-12-17 Permalink | Reply
    Tags: , , management, note   

    I reopened today the #peel project, left aside 3/4 month ago. I was a bit worried about opening the IDE because a lot of things have changed.

    Indeed, during the development of Tuning Score, I didn’t do the same mistake as the oneS i did with peel.

    When I’ve started peel, my ideas about the polymorph package, and therefore the architecture of the whole project, were really vague. Due to the lack of global view, I have developped a lot of things in peel, such as a custom camera rig, a custom project format in xml and the classes to manage it, etc, etc.

    The approach was quite different for Tuning Score. From the start, the code specific to the game has been separated form the “core”. The core has given the polymorph package. It is full of virtual methods, and, excepts crucial stuff, the rest of the important methods and params are public or protected. For programmers, this means it can be easily overloaded.

    While I was starting the refactoring on peel, the benefits became crystal clear: I needed to replace the previous xml parser class by the one of polymorph. But for peel, i need a custom structure of data. By creating a custom class “PeelObjectManager” that extends “polymorph::PObjectManager” and “polymorph::PXmlParser”, the code to parse the custom xml tags has been done in 30 minutes 🙂

    I think it will take 30 to 40 hours to have peel on track again.

    Some screenshots will pop-up very soon, and several new features in the package:

    • sound spacialisation in pd
    • camera rig configuration via xml
    • objects parenting via xml
    • graph engine, usable for state engine, etc., with 2d overlay
    • there might be other things…
  • frankiezafe 23:39 on 2016-12-16 Permalink | Reply
    Tags: , , ,,   

    Looking for loops in networks.

    It’s seems very simple, but when i’ve started to search for a programmatic way to solve this, you ends up with a kind of complexity that seems much too high compared to the problem.

    After a bit of research, i found the Rocha Thatte method. It is a very elegant way to detect “cycles” in “directed graphs”. Description in wikipedia.

    This is a js implementation, based on the java version, used to study the implementation.

  • frankiezafe 18:27 on 2016-12-08 Permalink | Reply
    Tags: choreography, , , ,   



    A two days work session with Florence, Lisa Nelson, @louise and Baptiste.

    We went deeper in the improvisation technique of Lisa, by performing a score with Baptiste and also by talking a lot about what Tuning Scores is and is not. The performance and the exchanges have been recorded.

    This is an important step for the future of the project: a prototype is ready but there were a lot of blind spots that are becoming brighter and brighter each time we talk.

    You can discover the project tomorrow: event

  • frankiezafe 22:28 on 2016-12-07 Permalink | Reply
    Tags: , , ,   


    Triggering sounds when there is a collision between 2 objects is now feasible with the code. A message is sent to pd with the name of the objet and a “contact” flag (left of the image).

    It has been a hell of a fight to get extract “useable” collisions information out the physical engine. There are 3 or 4 ways to listen to them and for each collision you get a LOT of data:

    • number of points
    • localisation of these points on each objet, in local and world cooridnates
    • impulse, frictions, etc

    And, obviously, all this happens for all objects currently colliding…

    The first version of the code will runs on friday evening. It is certainly not the final version. A more serious approach is on its way, but it was too complex (impossible) to finish for tonight.

    And, the sound design is close from 0 🙂

    Stay tune for more!

  • frankiezafe 16:51 on 2016-12-04 Permalink | Reply
    Tags: , ,   


    Designing diagram in puredata. Even if the sound is not nice…

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

    Présentation de Tuning Games 


    Contredanse ASBL et Polymorph vous convie à une rencontre autour des projets de jeux vidéos et 3D “Tuning Games” en collaboration avec Lisa Nelson

    Vendredi 9 décembre 18h au WTC, de 18h à 21h.

    En présence de Lisa Nelson, Baptiste Andrien, Louise Baduel, Florence Corin et François Zajéga.

    Contredanse ASBL and Polymorph invite you to an encounter around the video & 3D games “Tuning games”, in collaboration with Lisa Nelson, an american choregrapher.

    Friday the 9th of December at the WTC from 6PM to 9PM.

    In presence of Lisa Nelson, Baptiste Andrien, Louise Baduel, Florence Corin and François Zajéga.

    Les éditions Contredanse ont engagé depuis plusieurs années un projet de publication avec Lisa Nelson, désirant par là combler le manque de documentations sur le travail artistique et pédagogique de cette artiste américaine, chorégraphe, improvisatrice et vidéaste. Présenter les enjeux de sa partition d’improvisation appelée Tuning Score, condenser les questions majeures de cette artiste et communiquer de manière directe sa manière d’appréhender et voir le mouvement, est ce qui a mené au projet de création de jeux vidéos. Parallèlement à un projet de publication de livre, ces jeux vidéos – développés par Polymorph et Contredanse – agiraient ici comme analogies à ses processus de composition instantanée, traduisant dans un univers numérique une synthèse des problématiques rencontrées tout au long de son parcours artistique.

    Présentation des deux prototypes « Vidéo Tuning Game » et « 3D Tuning Game » :
    Un premier prototype de manipulation de vidéos en temps-réel permet d’éditer le mouvement et ainsi nous enseigne sur nos stratégies d’analyse et de composition, le deuxième prototype permet la manipulation d’objets dans un univers virtuel, le comportement des objets régis par une physique simulée engendre un questionnement sur notre perception kinesthésique. Se jouant en duo, il implique un écoute et un dialogue, source d’apprentissage et composition commune.

    After many years of planning, a project is in process of creating a “videogame”—an online real-time editing program—that in a sense re-reverse-engineers my initial discovery of the interactive play between visual, kinesthetic, and auditory sensations while editing video. The project, which is being produced by Contredanse in Brussels, will exist online, with the prospect of making it multi-player. The intention of the publication is to provide a set of tools that facilitate the learning process of real-time editing (which our senses do naturally all day long). The clips will offer audiovisual material that engages different senses and invite the player to discover their own patterns of seeing and choice-making as they play. Users will also be able to upload their own clips for play and analysis.
    Lisa Nelson

    Lisa Nelson est chorégraphe, improvisatrice et vidéaste. Depuis le début des années 1970, elle explore le rôle des sens dans la représentation et dans l’observation du mouvement. Partant de son travail vidéo et de la danse des années 70, elle a crée une méthode de composition spontanée et de spectacle de danse qu’elle appelle Tuning Scores. Elle crée, enseigne et donne des spectacles partout dans le monde, collaborant avec de nombreux artistes. Depuis 1977, elle est co-éditrice de Contact Quarterly, revue internationale de danse et d’improvisation, et dirige le projet d’archivage et de distribution de vidéocassettes de danse d’improvisation, dénommé Videoda. Elle habite dans le Vermont, aux états-Unis.

    Contredanse est une association bruxelloise fondée en 1984 par la danseuse et chorégraphe belge Patricia Kuypers. Contredanse s’est donnée pour mission, dès l’origine, de soutenir la création chorégraphique. Elle souhaite offrir des outils et des ressources aux chorégraphes et aux danseurs pour leur permettre de relier leur travail en studio à une analyse de la pensée du mouvement, du corps, de la composition, de l’histoire de leur discipline.
    Ses activités sont orientées principalement vers l’information et la documentation, l’édition ainsi que la formation. Contredanse développe également des partenariats en s’associant à des projets tels que tables rondes, conférences, ateliers de réflexion en liaison avec la danse…

    Polymorph est une plateforme de jeu vidéo libre. Elle est tout autant un espace de recherche technique et esthétique, un lieu d’expérimentation artistique et de réflexion sur le medium jeu vidéo qu’un réseau de personnes intéressées par les logiciels libres. Née en juillet 2016, le projet « Tuning games » est la première production de polymorph. Le prototype présenté ce soir s’appuie sur un moteur en cours de construction, le polymorph-engine.
    Ce projet est développé au sein de l’asbl FLAT, Free Libre Art & Technology.

    Info pratiques

    F/LAT asbl
    28-30 boulevard Albert II
    World-Trade-Center Tour I
    25e étage

    Important : Pour les retardataires, après 19h, l’accès principal est fermé et l’accès se fait avec la liste d’invités seulement. Il est donc indispensable de confirmer votre venue avant le 08/12/2016 à 16h. Présentez-vous alors au 3, rue Willem De Mol et sonnez.

    Un verre vous sera offert à l’issue de la présentation.

    Merci de confirmer votre présence en laissant un commentaire sur ce post.

  • 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!

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