Le salon de terrasse et le coin repas extérieur, capturés dans le visionOS Simulator.
Les outils utilisés
Claude Code avec Claude Opus 5.5 comme agent de construction. Un agent de relecture distinct, Claude Sonnet 5.5, a vérifié les rendus et le Simulator. Codex s’est chargé de la maintenance ultérieure.
Blender 5.2, piloté sans interface par une quinzaine de scripts Python. Nous n’avons jamais ouvert la fenêtre de Blender.
Scenario pour les images produit des chaises (GPT Image 2) et les modèles 3D à partir d’images (Rodin Gen-2.5). OpenAI Images pour quelques textures et l’œuvre au-dessus de la cheminée.
Des textures CC0 gratuites de Poly Haven et d’ambientCG.
Locus dans le visionOS Simulator pour les vérifications, et Apple Vision Pro pour les retours et les journaux de performances.
1. Partir d’images de référence
Villa sur la colline est partie de deux images de référence : un rendu en coupe d’un plan vu de dessus, et un salon en double hauteur au coucher du soleil, ouvert sur une terrasse. Apportez les vôtres ou demandez-les.
Instruction pour votre agentGénère deux images de référence pour une villa moderne sur une colline : un rendu en coupe du plan vu de dessus, et le salon en double hauteur à l’heure dorée, ouvert sur une terrasse avec un salon autour d’une table à feu, une table pour huit et une petite piscine.
Notre référence pour le plan.Notre référence pour le salon.
Pas besoin de clé d’API pour générer des images. La génération d’images incluse dans un abonnement ChatGPT suffit ; nous avons simplement utilisé Scenario et l’API OpenAI.
2. Planifiez le sol et les sièges
Instruction pour votre agentTransforme ces deux images de référence en un plan coté en mètres avec la disposition des places : deux niveaux, le vide en double hauteur, la terrasse et la piscine. Montre-moi le plan avant de construire.
L’agent a écrit le plan sous forme de nombres en mètres, puis l’a dessiné. Les dessins, le modèle et les places viennent tous de ce seul fichier : déplacer un meuble déplace aussi sa place.
Séjour : 13,2 × 8,2 m, sous un plafond à 7,8 m.
Vide : 8,3 × 5,9 m, ouvert du salon jusqu’au toit.
Étage à +4,10 m, sur trois côtés du vide.
Piscine : 7,2 × 2,5 m.
Sky Room : une boîte de verre en porte-à-faux de 4,6 m au-dessus du coin repas extérieur.
Il y a 33 places réparties en 9 groupes. Trois groupes ont un bureau que l’on peut masquer : l’îlot de cuisine, le coin repas extérieur et la Sky Room.
Rez-de-chaussée et terrasse. Les points numérotés sont les places ; le contour en pointillés est la Sky Room au-dessus.L’étage, sur un contour estompé du rez-de-chaussée.
Groupe
Places assises
Sur le plan
Canapé du salon
4
1–4
Fauteuils du salon
4
5–8
Îlot de cuisine
4
9–12
Canapé de la terrasse
5
13–17
Fauteuils lounge de la terrasse
2
18–19
Repas en plein air
8
20–27
Sky Room
2
28–29
Passerelle nord
2
30–31
Galerie-bibliothèque
2
32–33
3. La construire dans Blender
Instruction pour votre agentConstruis-la dans Blender sans interface à partir du plan. Utilise d’abord des textures CC0 gratuites et ne génère que ce qui manque. Génère chaque chaise sous forme d’image produit, puis transforme-la en modèle 3D. Vérifie chaque place dans des rendus avant l’export, et reste sous 150 000 triangles.
Pour Villa sur la colline, cela a donné douze jeux de textures de Poly Haven et un travertin d’ambientCG, plus de la pierre, une œuvre et des dos de livres générés. Six chaises sont passées d’images produit à des modèles 3D. La première version comptait 148 484 triangles.
Un rendu de contrôle Blender de la version 1.0.4.
4. Corriger ce que l’on voit
Essayez ensuite la pièce sur Apple Vision Pro et dites à l’agent ce qui ne va pas. Nos trois séries de retours au casque se résumaient à des prompts comme ceux-ci :
Instruction pour votre agentAu casque, je ne peux pas toucher le bureau de la Sky Room, le verre de protection autour du vide est invisible, les poufs sont tournés dans le mauvais sens et les feux sont trop grands. Corrige ça.
Instruction pour votre agentLes coussins de dossier penchent vers l’avant, deux places sont trop enfoncées et la lampe de bureau est trop forte.
Instruction pour votre agentUtilise l’eau de pièce intégrée à Locus pour la piscine au lieu de l’eau modélisée.
L’escalier et l’îlot de cuisine, capturés dans le visionOS Simulator.Le salon vers la cuisine, capturé dans le visionOS Simulator.
5. Améliorer la fréquence d’images
La première version était lente au casque. Pour la rendre fluide, il a fallu des prompts comme ceux-ci :
Instruction pour votre agentPourquoi est-ce si lent sur le casque ?
L’agent a passé la Room en revue, trouvé 165 mégapixels de textures et huit spots en temps réel, puis proposé quoi changer.
Instruction pour votre agentVas-y : dimensionne les textures selon la distance de vue et réduis les spots en temps réel.
Instruction pour votre agentPrécalcule chaque lampe dans des couches de lumière, pour qu’il ne reste aucune lampe en temps réel.
Les textures sont passées de 165 à 33 mégapixels. Au final, chaque lampe a été précalculée dans l’un des cinq groupes que vous pouvez allumer ou éteindre, et il ne reste plus aucun spot en temps réel. Le précalcul a de nouveau alourdi le téléchargement : environ 118 Mo aujourd’hui.
Plus de détails
Si vous êtes curieux, voici un peu plus sur la façon dont cette pièce a vu le jour.
Combien de temps cela a-t-il pris ?
Environ une journée. Nous sommes partis des images de référence le soir du 23 octobre, et la première version finie était prête le lendemain matin.
Les corrections sur le casque des étapes 4 et 5 sont venues ensuite, en quelques allers-retours.
Combien cela a-t-il coûté, et quels services avez-vous utilisés ?
Pas grand-chose. Voici tout ce que nous avons payé :
Scenario : six images produit de chaises avec GPT Image 2, et huit modèles 3D à partir d’images avec Rodin Gen-2.5, dont deux régénérés. 750 CU au total.
OpenAI Images : six requêtes pour deux textures de pierre, l’œuvre au-dessus de la cheminée, un atlas de dos de livres et deux brins d’olivier jamais utilisés. Environ 0,30 $ US.
fal : un essai image vers 3D à trois vues sur une chaise, 1,35 $ US. Rien n’en a été retenu.
La génération d’images peut se faire avec l’usage inclus dans un abonnement ChatGPT, sans clé d’API. Nous avons simplement utilisé Scenario et l’API.
Nous n’avons utilisé aucun autre service de génération : ni Tripo, ni Meshy, ni Hunyuan3D, ni Trellis. Ces coûts correspondent à l’usage enregistré, pas à des factures.
Fallait-il modifier Locus lui-même ?
Quelques-uns. Une pièce aussi grande a atteint certaines limites de l’app. Les corrections sont toutes publiées, donc une pièce similaire en profite d’office :
Avec « Places assises » ouvert, la Sky Room tombait à 2–3 i/s : chaque repère de place revérifiait sa ligne de vue contre toute la maison dix fois par seconde. Les repères gardent désormais leur ligne de vue jusqu’à ce que vous ou le repère bougiez, et leur coût est passé de 300–450 ms à moins de 1 ms par image.
Le feu est devenu une vraie flamme 3D. D’abord, les flammes des brûleurs linéaires sont restées dans le plan du brûleur. Puis la flamme plate, qui ressemblait à un découpage en papier, est devenue volumétrique ; elle part désormais du brûleur au lieu de 6 cm au-dessus.
À une place de la terrasse, l’eau de la piscine disparaissait quand la superposition de déplacement de place passait devant. Elle ne masque plus ce qui se trouve derrière.
Depuis les places de l’étage, les arbres de la View paraissaient trop proches ; une pièce peut désormais masquer le décor proche de la View.
Les repères de places groupés ou en partie cachés, comme celui du bureau à l’étage, se sélectionnent maintenant directement.
Pour trouver ce qui coûte en fréquence d’images au casque, nous avons ajouté des interrupteurs internes qui coupent les feux ou les surfaces transparentes.
L’eau de pièce et les couches de lumière précalculées existaient déjà dans Locus. Villa sur la colline s’en sert simplement.
Comment tourne-t-elle sur Apple Vision Pro ?
Nous avons mesuré la version 1.0.2 au casque. Les vues assises tenaient 90 i/s. La place de la galerie-bibliothèque tournait à 61–69 i/s et atteignait 90 avec les feux éteints ou les surfaces transparentes masquées.
Ces chiffres viennent d’une version de débogage de Locus avec une journalisation des performances supplémentaire, absente de la version App Store. Pour votre propre Room, décrivez ce que vous voyez dans le casque et laissez l’agent vérifier les textures, les triangles et les lumières.
La compression de textures GPU n’est pas encore appliquée à cette pièce, et nous n’avons pas remesuré le confort ni les performances de la version actuelle.
Qu’est-ce qui a mal tourné en chemin ?
Les meubles générés apparaissaient en noir dans l’app, car rugosité et métal étaient regroupés dans une seule texture. Les séparer a réglé le problème.
Des livres flottaient jusqu’à 0,6 m au-dessus de leurs étagères : chacun tournait autour de la mauvaise origine.
Les coussins de dossier penchaient vers l’avant, à cause d’une erreur de signe.
Réutiliser chaque matériau identique semblait malin, mais la mémoire a augmenté d’environ 132 Mio ; nous y avons renoncé.
Villa sur la colline est gratuite dans Locus. Vous la trouverez dans la Bibliothèque, dans la série « Grandes demeures ».