Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2963 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Rech. de collaborateur | Génération procédurale d’aménagement |

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Rech. de collaborateur | Génération procédurale d’aménagement |

n°2218911
eZ'
Posté le 07-02-2014 à 17:21:13  profilanswer
 

Salut,  
Je poste ici une annonce pour un projet que je conduit depuis plusieurs mois. C'est un petit pavé, mais ça vaut le coup ! Pour ceux qui n'ont pas le temps, le paragraphe de présentation succincte ainsi que le Prezi permettent d'avoir une bonne idée du projet.  
 
 
Sujet
 
Recherche de développeur (préférence Python) pour un projet portant sur la Génération Procédurale d’Aménagement intérieur (GPA) – collaboration avec un architecte d’intérieur / designer. (Travail probable sur la base d'environnement de Blender.)
 
Avant propos
 
Avant toute chose, je tiens à signaler deux éléments importants.  
Le premier est le contexte de ce travail ; étant en dernière année de Master, il rentre dans le cadre d’un travail de fin d’étude. La qualité finale du travail m’importe donc tout autant que le processus de production, et il a pour moi une visée diplomante.  
En gros, je n’ai pas le droit de me louper.
Le deuxième élément est intrinsèquement lié au premier ; son caractère évolutif. Je m’aventure ici dans un domaine qui me fascine depuis quelque temps déjà, mais où je n’ai qu’un panel restreint de compétences. Je vous présente ce projet à l’instant t dans l’espoir de trouver ici non seulement un partenaire pour m’aider à le faire sortir de terre, mais aussi de simples avis sur comment le faire évoluer sur le fond et sur la forme. Je me réserve donc le droit d’en faire évoluer l’objectif, et viens vers vous en toute humilité.[/size]
 
--------
 
 Présentation succincte
 
 Le projet vise, par la création d’un script/logiciel, à explorer le potentiel de la génération procédurale appliquée dans le cadre de l’aménagement d’espace. L’idée étant la génération d’ameublements intérieurs par le peuplement de mobilier d’un volume que l’on aurait prédéfini. Cela concernerait des propositions de positionnement dans l’espace de meubles donc, mais aussi des propositions de types d’objets de mobilier, le tout régi par un système de mots-clés.
Le choix du mobilier destiné à l’aménagement viendrait puiser dans une banque de mobilier, crée et enrichi par les utilisateurs dans une optique de brassage des connaissances : il est ici question d’une ouverture du regard sur le champ des possibles, que les résultats produits soient de l’ordre du probable ou de l’expérimental. Il s’agit de générer rapidement une grande quantité de propositions d’aménagements de l’espace aux utilisateurs - tant au niveau des positionnements dans l’espace que dans la diversité du mobilier proposé- et de laisser ces derniers venir piocher dans ce panel de propositions les éléments qu’ils jugent intéressants.
 
 Ce peuplement affecterait des propositions de positionnement de mobilier dans l’espace et des propositions de diversification de ce mobilier. Deux niveaux de génération donc.
 

  • L’un qui s’attaque à la position de l’objet dans l’espace : positionnement qui se fera en fonction de l’espace prédéfini et de ses contraintes préétablies.  

ex : j’ai une porte en face, je ne peux donc pas positionner ce canapé ici.

  • L’autre qui s’attaque à la diversification, à la qualité du mobilier, des propositions multiples de mobiliers provenant de bibliothèques; et qui, grâce à une notion de mot-clé couplée à une probabilité, parviendrait à proposer des associations intéressantes.


 Au stade initial, le projet ne concernerait que l’habitat, et ce à une échelle réduite, et serait proposé et construit en tant que preuve de concept.
L’idée n’est pas d’arriver à « Une » solution présentée comme parfaite, mais au contraire d’arriver à une multiplicité de solutions, dans lesquelles l’utilisateur viendrait piocher ici et là les éléments intéressants afin de les intégrer à son propre workflow.
 
 L’aspect évolutif de la bibliothèque est très important ; plus qu’une collection préétablie, le projet donne la capacité à l’utilisateur de rentrer de nouveaux mobiliers et de les partager. L’idée étant que la GPA vienne puiser soit dans une bibliothèque interne (au projet, à l’équipe) soit dans une bibliothèque globale (mondiale), et ce jusqu’à mettre en commun et brasser les connaissances de chacun.
 
De par mes recherches, le choix de Blender comme environnement de base de travail se trouve dans l’ouverture du logiciel - sous licence GPL -, permettant de développer le projet sous forme de script en langage Python sans problème juridique. Outre cet aspect technique, Blender dispose déjà d’un aspect communautaire particulièrement intéressant, et potentiellement intéressé par le développement d’un projet de ce type. Mais là encore, je reste ouvert.
 
Je vous invite à cliquer ci-dessous pour visionner (et entendre!) le Prezi  qui explique en image la base.
 
 
http://uppix.net/nvnx91l.jpg
 
 
 
 Public visé
 
 Ce projet se veut avant tout une expérimentation de l’application réelle de la génération procédurale dans un contexte créatif, il a donc une vision globale dans son propos.
La Génération Procédurale d’Ameublement (GPA) présentée possède un intérêt dans de nombreux domaines. S’il apparaît évident que la connexion avec le mobilier existant pousse cet intérêt dans le domaine de l’architecture et de l’architecture d’intérieur au premier abord, la rapidité de production d’intérieurs « valables » est un atout non négligeable dans bien d’autres domaines comme l’infographie ou encore le jeux vidéo, où la nécessité de « remplir » un arrière-plan se fait souvent ressentir.
La dualité des collections privées/communautaires, couplée avec la capacité pour l’utilisateur de rentrer de nouvelles données permet ici un panel d’utilisations extrêmement large & puissant.
 
Le projet étant réalisé dans un cadre éducatif orienté vers l’architecture, je me permets de développer ce point spécifique tout en gardant à l’esprit son caractère expérimental. Son utilisation première pourrait se définir dans ce milieu comme une aide à la création. Loin de remplacer ou de singer l’architecte, le projet s’intègre dans le workflow de celui-ci lors de la phase créative. Dans le déroulement d’un projet, il n’est pas rare de se retrouver dans des situations de choix créatif où chacun des acteurs a sa propre vision (en l’occurrence, de l’espace à produire). La GPA, en lieu et place de propositions clés en main, propose de générer un support visuel destiné à aider à la prise de décision. Face à une multiplicité de propositions d’aménagement, les acteurs peuvent alors communiquer plus efficacement sur leurs attentes.
On peut même imaginer dans certains cas que des réponses générées, qualifiées de peu communes, puissent correspondre mieux à l’identité du projet architectural souhaité.
 
--------
 
 Concrètement, déroulement
 
Du début jusqu’à la fin, épate par étape.
 

  • Étape 1 /  

Importation des plans / modèle 3D du volume initial dans l’interface Blender.

  • Étape 2 /

Création du volume initial à l’aide des outils de Blender-: l’idée étant d’arriver à une maquette virtuelle tri-dimensionnelle.

  • Étape 3 /

Création des points pivots dans ce volume initial-: On positionne chaque porte, fenêtre, radiateur, etc., en indiquant au projet sa valeur pour qu’il le reconnaisse en tant que point autour duquel il va devoir construire la génération.  
- Est-ce à partir d’une bibliothèque simple dans laquelle on peut venir changer la valeur d’un point pîvot, une fenêtre par exemple-? Ou est-ce une simple interface pour nommer l’objet dans une variable reconnaissable-? (préférable)

  • Étape 4 /  

Choix d’une liste de mobilier venant puiser dans l’archétype (objet «-neutre-» sans référencement, faisant office de placeholders).
Ex: je veux deux chaises, une table, etc.
Choix possible d’une certaine quantité de mots-clés, destinés à restreindre le champ de recherche de mobilier au sein d’une bibliothèque.

  • Étape 5 /  

Générations initiales avec les valeurs de base-: Génération à base de procédure, instaurée par les points pivots et les mots clés, d’un placement et d’un choix de mobilier dans l’espace initial.  
Le facteur variable est ici très important pour la multiplicité des choix présentés-: ce n’est pas une affaire de 0 = absent et de 1= présent, mais des notions de pourcentage.

  • Étape 6 /

L’utilisateur a alors devant lui une série de propositions d’aménagements (qu’il pourrait sauvegarder - snapshot) composées visuellement d’archétypes neutres (modèle 3D simpliste) eux-mêmes liés à une fiche de mobilier réel indiquant le constructeur, le designer, etc.
- A terme, on peut imaginer de remplacer ces archétypes neutres liés à une fiche mobilier par un modèle 3D du dit mobilier

  • Étape 7 /  

Si l’utilisateur le souhaite, il peut pour chacun des objets sur scène sauvegarder indépendamment le positionnement ainsi que le mobilier présenté, qui sera alors pris en compte lors de la prochaine génération et qui « surpasse » toutes les autres procédures. Le mobilier sauvegardé devient alors pour le logiciel un nouveau point pivot autour duquel il vient construire l’ameublement, et les mots clés du mobilier conservé sont utilisés pour de nouvelles associations.
- Dans une version optimale, en plus de cette notion de sauvegarde, l’utilisateur pourrait influer en temps réel sur ce qu’il voit à l’écran afin de bouger/pivoter un mobilier et l’ameublement répondrait en temps réel.

  • Étape 8 /  

Intégration dans le workflow de l’utilisateur. Exportation du modèle 3D, sauvegarde des fiches sur un fichier texte-?
 
 
Génération de positionnement
 
 
La partie “positionnement” de la GPA sera donc basée sur deux types de procédures ou lois, régissant la génération.

  • D’un côté, les lois que l’on appellera de contexte, qui rassemble les règles introduites par l’aspect de la volumétrie générale de l’espace, mais aussi les règles spécifiques liées aux points pivots placés dans l’espace (lors de l’étape 3/).  

Ex: le point povot Porte introduit une règle d’espace minimum de passage dans ses alentours.

  • De l’autre côté, les lois que l’on appellera de contenu, qui sont les règles introduites par l’utilisation de tel ou tel objet de mobilier. Chaque objet se base, lors de sa création, sur un archétype, sorte de grande famille, de type de mobilier - Porte, Chaise, Table basse, etc. -. Avec chaque archétype vient une quantité de règles générales, non spécifiques à l’objet en soi, mais à la famille; l’archétype est un pattern, un modèle de règles d’utilisation, s’approchant au plus de la pièce et qui garantit que le logiciel sache comment utiliser l’objet.  

Ex : la chaise X utilise l’archétype Chaise; ce qui lui garantit des règles d’utilisation communes à la chaise Y, qui utilise le même archétype.  
L’archétype n’est donc pas un ensemble de valeurs telles que la longueur ou la largeur, mais plus un ensemble de règles d’utilisation, de comportement et d’interaction de l’objet par le logiciel, une sorte d’alter ego virtuel de la logique architecturale d’ameublement dans le monde réel.
 
 Génération de diversification
 
 La génération de “diversification” est la génération de propositions de mobiliers divers, en accord avec les archétypes et les mots-clés de recherche introduits lors de l’étape 4/. Si la génération de positionnement va s’intéresser à la position des archétypes dans l’espace, celle de diversification a pour but de proposer à l’utilisateur des propositions d’objet pour chaque archétype. Elle utilise pour cela la notion de mots-clés couplée à un référencement de chaque objet de la bibliothèque, permettant au logiciel de venir puiser dans un panel d’objets plus ou moins large, chaque mot-clé ajouté par l’utilisateur lors de la génération réduisant le champs de recherche.
 
Les mots-clés sont inscrits lors de la création de chaque objet de mobilier. Chaque objet peut avoir plus ou moins de mots-clés, signifiant plus ou moins de référencement et donc plus ou moins d’occurrences de générations l’utilisant. Le système repose donc sur la bonne volonté de chacun de ne pas sur-référencer l’objet que l’on vient de créer.  
Lors de la création d’un nouvel objet, chaque mot-clé définissant le référencement de cet objet est associé à une valeur, le classant par rapport aux autres ; ainsi une chaise X sera déjà catégorisée comme « calme, bois, zen » avant de l’être comme « moderne, fluide ». Le système de valeurs puisera largement dans la notion de virgule flottante, permettant d’éviter un système rigide où les résultats seraient trop systématiques.
Dernier point, lors de la création de mobilier l’utilisateur est invité à choisir dans quelle bibliothèque le mobilier sera utilisé : personnel (et donc interne) ou communautaire (globale)
 
En résumé, la génération de diversification utilise un système hiérarchique pour présenter des propositions d’objet à l’utilisateur :
 > restriction du choix en fonction de la bibliothèque choisie  
    > restriction du choix en fonction de l’archétype  
     > restriction du choix en fonction des mots-clés
 
 Bibliothèque
 
La notion de bibliothèque est au coeur même du projet. Elle est dépositaire de tout les objets crées par le ou les utilisateurs. Elle se décompose en deux parties, l’une personnelle, l’autre communautaire.
 

  • La bibliothèque personnelle est, comme son nom l’indique, destinée à être utilisée en circuit fermé,  à savoir que le projet ne viendra utiliser que des objets internes à la collection. Ce qui signifie que l’utilisateur peut alors réguler les résultats à sa guise, en utilisant du mobilier strictement issu de sa création personnelle (ce qui ouvre donc la voie à l’utilisation de pièces spécifiques liées à un projet - je pense ici à l’aspect game-design).


  • La bibliothèque communautaire à elle l’ambition de fournir des propositions et des associations sortant du champ des connaissances de l’utilisateur ; c’est une bibliothèque globale, où chaque utilisateur peut venir “uploader” son objets - et donc ses propres mots clés.  Les propositions fournies par le projet viendraient donc ici puiser dans une collection potentiellement infinie et évolutive. Les mots clés deviennent ici particulièrement intéressant car mélangeant la subjectivité de tous les utilisateurs, permettant un renouveau constant de la proposition.

Il est donc évident qu’à ce stade le projet devient entièrement dépendant de sa communauté, tant au niveau de la richesse du contenu que par sa qualité, et sa régulation. Le tout peut-être tout à fait contenu par un lexique précis concernant l’utilisation de mots clés ainsi que l’utilisation strictenglais comme langue de partage.
 
 Mots de la fin
 
Voilà. Je pense qu’à partir d’ici vous avez déjà une bonne idée de ce que pourrait donner le projet. Je suis donc à la recherche d’un ou plusieurs complices pour mener à bien cette aventure.
 
 A ce stade, bien que passionné et obnubilé par ce projet je me retrouve devant un mur de compétences techniques que je ne maîtrise pas. J’apporte ici un concept, se basant sur des besoins précis, fruit de mes derniers mois de travaux. Mon cadre étudiant me garantit aussi un apport au niveau de la réflexion par des gens compétents, experts dans le milieu architectural, qui me suivent depuis le début de cette aventure.
Cette collaboration mettrait à profit deux technicités nécessaires à l’aboutissement de ce projet: un côté développement informatique de code pur, dont je ne dispose pas ; et de l’autre un côté architectural, avec la rédaction des « règles » liées aux procédures de génération.
C’est l’occasion pour vous d’intégrer un projet concret s’inscrivant dans un cadre peu commun avec des acteurs provenant de différents milieux.
 
C’est aussi un projet dont l’aspect commercial peut à terme se développer si la collaboration est fructueuse, connaissant déjà dans mon milieu des bureaux fortement intéressés par le développement d’applications similaires.
 
 Au niveau des questions pratique
 

  • Si ma condition financière en tant qu’étudiant ne me permet pas de proposer une rémunération en bonne et due forme, je suis tout à fait disposé à discuter d’un dédommagement.
  • Je suis basé à Paris et Bruxelles, avec un emploi du temps totalement dévoué à ce projet.
  • J’ai 24 ans, et après deux années en école d’architecture je suis actuellement en Master 2  “Architecture d’intérieur et Design d’environnement” à l’Ecole Nationale Supérieure des Arts Visuels de La Cambre à Bruxelles.  

http://www.zaarb.com/   - site perso. http://www.lacambre.be/  - site de l'école  

  • De par le fait que ce projet s’inscrive dans une démarche étudiante, il comporte pour moi un volet d’évaluation. Je me fixe l’échéance de fin avril pour arriver à proposer un module initial, démonstratif de l’identité du projet. De par son concept évolutif, j’ai déjà exclu d’arriver fin mai à l’état final du projet, mais il est nécessaire de garantir - dans un simple esprit d’auto-conservation - un certain degré d’avancement, et j’attends donc une complète transparence de votre part.

Voilà voilà, j’espère avoir capté votre attention, et si vous êtes arrivés jusqu’ici merci de m’avoir lu et qui sait, merci de participer!


Message édité par eZ' le 07-02-2014 à 17:21:51
mood
Publicité
Posté le 07-02-2014 à 17:21:13  profilanswer
 

n°2219118
masklinn
í dag viðrar vel til loftárása
Posté le 10-02-2014 à 13:18:39  profilanswer
 

Règles de la catégorie, [0C]

Citation :

  • Les offres d'emploi et recrutements doivent être postées sur Emploi & Études, même si elles concernent des jobs de programmation.
  • Les demandes de bénévolat, ou les demandes de features "rémunérées" (sans être dans le cadre d'un emploi) seront modérées car hors-sujet : cela ne concerne que de loin la programmation en elle-même. Si vous cherchez du monde pour votre dernière meilleure idée de projet, le plus simple est de le mettre en signature et de participer normalement au forum, la notoriété étant la meilleure des publicités (note : notoriété != spam).



Message édité par masklinn le 10-02-2014 à 13:19:37

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2219222
Elmoricq
Modérateur
Posté le 11-02-2014 à 09:40:13  profilanswer
 

Voila, tout est dit. Je ferme.


Aller à :
  FORUM HardWare.fr
  Programmation
  Python

  Rech. de collaborateur | Génération procédurale d’aménagement |

 

Sujets relatifs
[RECH] Script statistiqueOutil calcul temps génération de la page serveur
[rech] programmeur confirmé pour création petit club informatique génération automatique d'un emploie du temps_windev
Bibliothèque de génération de graphiques & PDF en Java (Open-Source)[Vba Excel 2010] Génération d'un pdf avec envoi d'email
Problème lors de la génération de la javadocGénération de doc pdf sur base d'un formulaire
Génération auto/aléatoire de map pour jeu 2DProblème génération labyrinthe
Plus de sujets relatifs à : Rech. de collaborateur | Génération procédurale d’aménagement |


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR