Nodable – node oriented programming

Nodable is simple node-able software. The goal of this project is to develop a tool able to edit expressions in both graphic and text way.

The first version of the program was a command line. Now the software uses Dear ImGui (by Omar Cornut) to draw a nice GUI:

An expression example

A quick demo video :

 

Architecture

The software is built to be dynamically reflective. The base class Object has members called Values. Members can be added or removed at runtime. A Value is a Variant class that can handle basic data types such as Booleans (bool), Numbers (double) or Strings (std::string).

Two Values can be linked by a Wire. A Wire is an oriented edge, so it has a source and a target Value.

The derived class Entity is an Object able to attach Components on it. Component is the abstract base class for all components. For now there are ony three components :

  • Views : to draw the entity on screen.
  • Operations : to perform a computation.
  • Container : to contain other entities.

Variable class is an Entity with a single member named « value ».

Lexer class is an Entity able to convert an expression to a graph.

Application is a clas to rule them all !

Source code

If you’re interested by the code source, you can download it from github.com

History

 

The video below show a demo of Nodable 0.1 (terminal only) :

 

Bibliography

B-Rend3r – a realtime 3D engine

B-Rend3r is now a real-time 3d engine (in early development) written in C++. I’m using OpenGL and SDL2 to build my own 3d application framework. The main goal of this project is to deeply understand the core of 3d engines by implementing common classes.

  • Vectors3.
  • Matrices4x4.
  • Mesh primitive generator.

The video below is showing a demo of the KeyboardController (keyboard arrows move circle), the Transform component, the Physics component (smooth moves) and the Shape component (generates the circle’s mesh).

 

If you’re interested by the code source, you can download it from github.com

Socrastination : Jeu socratique sur le web

Ce site web est un projet de fin d’études de DUT Informatique en année spéciale réalisé en 2016 par Camille Chac, Maxime Ferrer, Clément Roig et moi-même. Ce projet était tuteuré par Madalina Croitoru (Professeur UM2 et membre de l’équipe de recherche de l’INRIA GraphIK au LIRMM).

Sur Socrastination on pratique le dialogue socratique. Autour de divers thèmes prédéfinis, deux participants s’affrontent par une joute verbale tentant ainsi se convaincre l’un l’autre. Les joueurs doivent veiller à convaincre également les arbitres, ces derniers étant chargés d’attribuer un malus ou un bonus à chacun de leurs arguments.

site_v3

Voici les différentes infrastructures et technologies que nous avons utilisés sur ce projet. Un certain nombre de services étaient déjà proposés par l’IUT (MySQL, Apache, PHP), nous nous sommes donc adapté à cette configuration pré-existante :

diagramme-denvironnement

Recueil de blagues – Angular JS 1.x

Ce projet est le résultat d’un exercice de formation. L’objectif étant de produire un modeste site web afin de comprendre la philosophie générale du framework Angular JS 1.x.

Ce site est constitué d’une seule page HTML et d’un contrôleur programmé en Javascript. La transition entre les pages est donc instantanée. Ci-dessous, l’interface de la page d’accueil :

capture-du-2016-10-13-13-15-25

Ayant une expérience conséquente en Infographie, j’en ai donc profité pour créer des graphismes spécifiques sous un logiciel de dessin vectoriel open source (InkScape). En zoomant sur certains éléments du site, on peut remarquer le détail du style CSS appliqué à cette page.

capture-du-2016-10-13-13-16-36

Angular m’a permis avec une facilité déconcertante de mettre en place un système de filtre par mots-clés, j’ai ainsi pu toucher du doigt la puissance ce genre de frameworks.

capture-du-2016-10-13-13-16-04

HTML5 : premier export de Micro Battle Tank.

screenshotHTML5MicroBattleTank

Mon projet Micro Battle Tank vient d’être exporté au format HTML5 grâce à ShiVa 2.0 (version beta). Ce moteur multi-plateforme m’a permis de rapidement adapter le jeu grâce aux fonctions de l’API system notamment.

ShiVa 2.0 étant encore en phase de beta testing, certaines API ne sont pas encore disponibles c’est pourquoi le site ne propose pas cette version par défaut.

Pour finir je vous invite à essayer la version HTML5 et à me faire part de toutes remarques/bugs /suggestions sur la page support.

1 2