Le divan qui ne descendait pas l'escalier, et le téléphone qui le dit maintenant avant l'achat
J'ai acheté un divan qui ne descendait pas l'escalier de mon sous-sol. La volée tourne à quatre-vingt-dix degrés sur trois marches balancées, et je l'ai appris à mi-chemin, le divan coincé et le mur éraflé. Puis un dégât d'eau a forcé le remplacement du chauffe-eau et deux installateurs ont descendu un réservoir de 279 litres par le même escalier. Deux objets, un escalier, personne n'a mesuré ni une fois ni l'autre. Elbow Room Mobile numérise une pièce avec un téléphone Android sans LiDAR, la rend comme un modèle 3D que vous pouvez concevoir, meubler et parcourir comme votre Sim, et répond à la question qu'aucune application de meubles ne pose : est-ce que la chose peut vraiment entrer. Un divan trois places dans la maison d'exemple passe la porte d'entrée et le corridor, puis perd de 2 pi 10 po au tournant. Le solveur derrière cela est vérifié contre la forme fermée publiée pour une tige de largeur nulle, qui est la seule partie du reçu dont je n'ai pas écrit la réponse.

Deux objets, un escalier, personne n'a mesuré
J'ai acheté un divan qui ne descendait pas l'escalier de mon sous-sol. La volée tourne à quatre-vingt-dix degrés sur trois marches balancées, sans palier, donc il n'y a nulle part pour redresser la chose et la faire pivoter. Je l'ai appris à mi-chemin, le divan coincé et le mur déjà éraflé. Quelqu'un avait mesuré le divan. Personne n'avait mesuré le coin. Puis c'est arrivé encore dans la même maison à quelqu'un d'autre : un dégât d'eau a forcé le remplacement du chauffe-eau, et deux installateurs ont descendu un réservoir de 279 litres par ce même escalier sans rien poser sur les murs d'abord. La fiche de cette propriété donne les treize pièces au pouce près et ne dit rien du tout sur l'escalier, qui est la seule partie qui ait jamais causé un problème. Toutes les applications de meubles en réalité augmentée jamais livrées répondent à la question de savoir si la chose est belle dans la pièce. Aucune ne vous dit non.
Pourquoi personne ne peut évaluer un tournant à marches balancées à l'oeil
Le coin est le problème de l'échelle qui tourne le coin, dans sa forme rectangulaire. Pour un objet de largeur w passant entre des corridors de largeur libre a et b, la longueur qui touche juste les deux murs extérieurs et le coin intérieur à l'angle t est a/sin(t) + b/cos(t) moins w/(sin(t) cos(t)). L'objet passe seulement s'il est plus court que le minimum de cette courbe, parce qu'il doit survivre à tous les angles du parcours, pas seulement à celui qu'on imagine. Ce minimum ne se trouve nulle part près des extrêmes, et c'est exactement pourquoi l'intuition échoue ici : le moment le plus serré du tournant est quelque part au milieu, à un angle que personne ne visualise, et les deux mesures qu'une personne prend naturellement (les largeurs des corridors) ne le produisent pas de façon évidente. À cela s'ajoute le choix de la section qui va à plat et de celle qui se tient à la verticale, puisqu'on tourne un matelas sur le côté, et la question de savoir jusqu'où on peut l'incliner avant qu'un soffite arrête tout. Incliner n'est pas gratuit non plus, parce que mettre une chose debout laisse sa propre épaisseur derrière elle en plan. `npm run verify` vérifie le solveur numérique contre la forme fermée publiée pour une tige de largeur nulle, (a^(2/3) + b^(2/3))^(3/2), sur plusieurs paires de corridors, puis passe des tests de régression. Cette forme fermée est un résultat connu que je n'ai pas dérivé, ce qui en fait la seule partie de tout ceci qui me corrige plutôt que l'inverse.

Une pièce depuis un téléphone sans capteur de profondeur
Le téléphone sur lequel j'ai bâti n'a ni LiDAR ni capteur de temps de vol, donc le balayage repose sur le suivi de mouvement, la détection de plans et la profondeur brute issue du mouvement, chaque pixel portant sa propre valeur de confiance. Cette confiance est toute l'histoire. La peinture sans texture n'en donne presque aucune, et c'est pourquoi le plafond a été faux pendant deux semaines : la profondeur lissée plaçait un plafond de 7 pi 9 po à 5 pi 3 po, chaque fois. La correction a été de jeter tout sauf la profondeur brute confiante, de prendre le groupe du haut de ce qui survit, et d'en lire le plafond. Il lit maintenant 7 pi 7 po, deux pouces sous le ruban. Deux autres échecs ont pris la même forme. Deux pièces vues par une ouverture revenaient comme une seule enveloppe convexe, ce qui a exigé de creuser les cellules partout où le plancher avait été vu en dessous. Trois plans à hauteur de siège revenaient comme un lit de huit pieds. Les murs sont alignés sur les deux axes dominants de la pièce, parce qu'une pièce mesurée à main levée n'est jamais tout à fait d'équerre et qu'un plan qui l'admet est plus difficile à lire qu'un plan qui l'arrondit.

La concevoir, puis découvrir ce qui peut s'y rendre
La pièce revient comme un modèle que vous pouvez faire glisser, pivoter et regarder de l'intérieur, dessiné par un moteur de rendu logiciel en polygones SVG avec les faces triées dans l'ordre du peintre, plus un détourage au plan rapproché pour la vue de l'intérieur. Il n'y a aucun moteur de jeu là-dedans. À partir de là : huit styles complets, tous les matériaux de plancher, de mur et de plafond, et la lumière. PLAN enlève les murs, regarde droit vers le bas et inscrit la longueur mesurée de chaque mur. Enlevez un mur ou ajoutez-en un et le métré des matériaux suit, donc vous obtenez la quantité de revêtement de sol, de peinture, de plinthe et de cloison sèche dont la pièce a maintenant besoin. Puis les meubles, depuis un catalogue aux dimensions typiques plus tout ce que vous avez cherché ou mesuré vous-même. Déposez une pièce et elle suit votre doigt, se colle à plat et d'équerre au mur le plus proche, et devient terracotta quand elle traverse un mur ou une autre pièce. Sélectionnez-la et l'écart entre chacun de ses côtés et l'obstacle le plus proche est inscrit sur le plancher, en terracotta sous les 30 pouces dont une personne a besoin pour passer.

La partie qui me tient le plus à coeur est plus discrète que tout cela. Chaque ligne du catalogue de meubles porte déjà son verdict de trajet avant que vous la choisissiez, donc un divan affiche « n'entre pas, il manque 2 pi 10 po » alors qu'il est encore un élément de liste. Cela inverse l'ordre habituel de la déception. Dans tous les autres planificateurs, vous tombez amoureux de la pièce, vous la placez, vous l'admirez, et vous apprenez l'existence de l'escalier à la livraison. Ici le catalogue vous le dit d'abord, et la pièce tient un décompte courant du nombre de meubles qui pourraient vraiment s'y rendre, avec la facture posée contre un budget que vous fixez. Les prix sont toujours les vôtres ; l'application n'en remplit jamais un. SHARE envoie la pièce en texte simple : chaque meuble, sa taille, son prix, et s'il entre.

Puis la parcourir à cinq pieds deux
PLAY place une silhouette dans la pièce que vous avez numérisée. Une manette fait marcher, un glissement fait tourner, et les murs et les meubles vous arrêtent, parce qu'une pièce dans laquelle on peut entrer en collision vous apprend plus sur un aménagement qu'un plan vu de haut. MY EYES abaisse la caméra à la hauteur d'oeil de la silhouette, et c'est la fonctionnalité que je garderais s'il fallait couper le reste : c'est la seule façon honnête de savoir ce qu'une pièce donne à cinq pieds deux plutôt qu'à la hauteur par défaut du moteur de rendu. La silhouette elle-même n'est volontairement pas un avatar cubique. C'est la figurine d'échelle d'un architecte, tête à huit côtés, torse fuselé, marchant dans une pièce qui a vraiment été mesurée, parce que le sujet est la pièce et qu'un personnage de dessin animé l'affaiblirait.


Un mur payant est une promesse
Les abonnements tournent sur RevenueCat. Le mur payant est construit dans l'éditeur RevenueCat dans la palette de l'application, le droit d'accès contrôle les meubles, les salles et la recherche de produit dans le code plutôt que dans l'interface, et le serveur de recherche vérifie le droit d'accès auprès de RevenueCat avant de dépenser quoi que ce soit sur une requête. Ce dernier point est la raison pour laquelle le résolveur est un serveur : la recherche de produit passe par une recherche web derrière un schéma JSON strict, donc une dimension est cherchée et citée plutôt que rappelée de mémoire, et une clé d'API ne se retrouve jamais dans le paquet de l'application, là où aucun plafond de dépense ne peut être imposé. La phrase que je me répéterais pour la prochaine fois : un mur payant est une promesse, et chaque ligne dessus doit correspondre à une porte dans le code. Quand mon texte disait « essai gratuit » avant qu'un essai existe vraiment, la correction a été de changer le texte, pas de le laisser comme une intention en espérant que personne ne cliquerait.

Ce qui n'est pas revendiqué
Ce n'est pas un instrument d'arpentage. Le balayage lit 7 pi 7 po sur un plafond que le ruban mesure à 7 pi 9 po, et je préfère imprimer ce chiffre que l'arrondir, parce que deux pouces sont exactement la taille d'erreur qui décide d'un trajet serré. Les dimensions du catalogue sont marquées comme typiques pour le genre d'objet plutôt qu'exactes pour ce produit jusqu'à ce que vous les confirmiez, les prix sont toujours les vôtres parce que l'application n'en remplit jamais un, et une pièce sans trajet mesuré le dit au lieu de deviner. Les images de la caméra sont traitées sur l'appareil puis jetées, les mesures vivent dans le stockage de l'appareil, et il n'y a pas de compte. L'état honnête de la publication est la dernière chose à dire clairement : l'application est en test fermé sur Google Play, pas en production, parce qu'un compte de développeur personnel créé après novembre 2023 ne peut pas publier avant que douze testeurs l'aient gardée installée pendant quatorze jours consécutifs, et au moment de la soumission ce compte était de un. Google vérifie que les testeurs ouvrent vraiment l'application, donc un lien dans une vidéo n'est pas un testeur et un téléphone où elle est installée n'est pas un testeur. Cette horloge est la seule partie de ce projet qu'aucune quantité de génie logiciel ne pouvait raccourcir.
Ce nombre de testeurs est la seule chose qu'un lecteur peut vraiment faire bouger. S'inscrire installe l'application sur votre téléphone et démarre l'horloge de quatorze jours ; il faut un appareil Android et une connexion Google, parce que Google compte le compte et non l'installation. Il y a aussi un parcours plus long et plus détendu de la même construction si la démo de 1:58 est allée trop vite :
Elbow Room Mobile: scan your home with an Android phone, plan it in 3D, then find out what can actually get in
Voir le projet
Un agent qui refuse de mettre des mots dans la bouche de Canon : 21 citations sur 22 retrouvées mot pour mot dans les documents du fabricant
Quand je travaillais en cinéma, mon Canon T5i manquait la mise au point en mode auto et je passais en manuel. Le manuel de Canon l'explique à la page 100, et je ne l'avais jamais lu. Ce genre de question de compatibilité a des réponses publiées, difficiles à trouver et faciles à mal citer, alors Will It Focus lit les documents des fabricants et refuse de les paraphraser entre guillemets. Deux points d'accès Sanity Context, un agent sur gpt-5.4-mini : 131 fiches typées servent les verdicts, une base de connaissances bâtie sur six PDF de fabricants sert les explications, et après la réponse du modèle, le code va chercher chaque citation dans la fiche citée. Sur 20 questions corrigées par les tableaux de Sigma, de Canon et de Metabones, 21 passages cités sur 22 sont mot pour mot. La première fois que je l'ai fait tourner sur la seule base de connaissances, il a mis des guillemets autour de 13 phrases qui n'apparaissent dans aucun des six documents, et c'est toute la raison pour laquelle le texte textuel vit maintenant dans des fiches typées.

Seize vrais appels à des pharmacies, zéro prix, et la raison mesurée : l'agent parle par-dessus le pharmacien
Les pharmacies ont payé environ 43 cents pour trente metformine, un chiffre que le CMS publie chaque semaine à partir des factures. Ce que vous payez est différent à chaque comptoir et publié nulle part, donc la seule façon de le savoir est de téléphoner. Sticker donne à un agent téléphonique CALL-E un médicament et un code postal, lit le registre fédéral NPI, appelle les pharmacies que vous autorisez, et joint chaque prix cité au NADAC du CMS. Seize vrais appels dans un code postal de Manhattan ont produit zéro prix et zéro refus. Le flux d'événements de la plateforme a montré pourquoi : 24 collisions sur 15 appels tracés où l'agent ouvrait son tour pendant que le pharmacien parlait encore. Signalé en amont comme le problème no 415, pris par un mainteneur le jour même. La contribution fusionnée comme PR no 404 après cinq passes de révision. Zéro est un résultat si vous dites comment vous l'avez obtenu.