<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Surya</title>
    <description>The latest articles on DEV Community by Surya (@surya0901).</description>
    <link>https://dev.to/surya0901</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4245824%2F532bfac0-fa4c-4271-9655-0a527ea71919.png</url>
      <title>DEV Community: Surya</title>
      <link>https://dev.to/surya0901</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/surya0901"/>
    <language>en</language>
    <item>
      <title>We asked AI for “just the TV.” It built the cabinet. Here’s how we fixed it.</title>
      <dc:creator>Surya</dc:creator>
      <pubDate>Sun, 15 Nov 2026 11:53:25 +0000</pubDate>
      <link>https://dev.to/surya0901/we-asked-ai-for-just-the-tv-it-built-the-cabinet-heres-how-we-fixed-it-21i8</link>
      <guid>https://dev.to/surya0901/we-asked-ai-for-just-the-tv-it-built-the-cabinet-heres-how-we-fixed-it-21i8</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/mlh-hackathon"&gt;MLH × DEV Writing Challenge&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;“Just the TV,” we typed, pointing Gemini at a living-room photo. It returned the media console beneath it, and our 3D builder made a convincing brown cabinet. The render looked polished. It was also the wrong object.&lt;/p&gt;

&lt;p&gt;That failure became our most useful test while building &lt;strong&gt;Landbell&lt;/strong&gt; at HackPrinceton Fall 2026. A 3D property tour can show you every room and still leave a renter wondering: &lt;em&gt;where will the things I already own go?&lt;/em&gt; Landbell lets someone choose an object in their own photo, build an editable GLB representation, and place it inside a walkable Matterport tour.&lt;/p&gt;

&lt;p&gt;Our pipeline treats the requested item as an explicit constraint. If the prompt says “just the TV,” the structured result should describe the screen and stand, excluding the console. Gemini returns the category, visible materials, and named structural parts. A TypeScript builder assembles boxes and cylinders with PBR materials into a binary GLB. The editor lets you place, move, rotate, resize, and raise the piece while exploring the home.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;The moment we built toward is simple: take the TV in your current living-room photo and see &lt;em&gt;that TV&lt;/em&gt; in the home you are touring. The catalog shows an estimated size and a calibration badge when a known reference was provided. Select the piece, move it through the room, and watch its dimensions and position update on a floor mini-map. The Move-In Summary groups items by destination room and exports a checklist. A design code restores a saved layout in the same browser.&lt;/p&gt;

&lt;p&gt;The new &lt;strong&gt;Building × Scan&lt;/strong&gt; view joins a local CoStar residential listing record with Matterport room boundaries and floor labels. It shows furniture footprint against both listed living area and scanned room area, splits placed volume between ground and upper floors, and compares furnished bedroom zones with the listing’s bedroom count. Those two area denominators describe different coverage; the percentage is a planning indicator, not a claim that every square foot is usable circulation.&lt;/p&gt;

&lt;p&gt;I have omitted the property footage and address from this public post because the event data and imagery require release clearance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Partner Technologies
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Gemini API for perception.&lt;/strong&gt; The request contains the photo and the exact target prompt. When a user supplies a known-size reference, Gemini returns corners for that landmark and the target. It also proposes visible structural parts and finishes. The cabinet failure taught us to validate &lt;em&gt;what&lt;/em&gt; was detected before admiring &lt;em&gt;how&lt;/em&gt; it rendered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deterministic geometry for dimensions.&lt;/strong&gt; We do not ask a language model to calculate feet from an angled photo. A TypeScript solver maps four reference corners to a front-facing metric rectangle with a 3×3 planar homography, then projects target landmarks through it and applies a depth-offset assumption. The result scales the GLB. It is an &lt;strong&gt;estimate&lt;/strong&gt;, not a certified measurement: uncertain corners, different object depths, hidden surfaces, and an off-plane reference can introduce error. The user can correct the dimensions. We still need a measured benchmark across camera angles before claiming accuracy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Matterport SDK for spatial context.&lt;/strong&gt; The generated model stays anchored in the walkthrough as the camera moves. Aligning camera pose, floor geometry, model coordinates, and mini-map projection took substantial debugging. The doorway indicator compares dimensions with a nominal 32-inch opening; it does not simulate the route around corners, stairs, or hardware.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CoStar listing data for a second layer.&lt;/strong&gt; The local listing record contributes building area, story count, bedrooms, and other available fields. The Matterport Model API contributes measured room boundaries and floor assignments. Combining them with placed models yields two explicitly labeled utilization ratios, story-level moving loads, and room allocation. We intentionally do not show exterior delivery measurements without verified data.&lt;/p&gt;

&lt;p&gt;Rate limits also threatened the live workflow. We added content-addressed caching, model fallback, and retries. If generation still fails, the app reports the failure rather than silently calling a guessed size calibrated.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hackathon Experience
&lt;/h2&gt;

&lt;p&gt;HackPrinceton pushed us from a compelling visual idea toward a testable planning workflow. The first TV result was attractive enough to overlook. Instead, we separated visual interpretation from arithmetic, constrained object selection, and made uncertainty visible where one photograph does not contain enough information.&lt;/p&gt;

&lt;p&gt;Our next test is concrete: photograph tape-measured furniture beside different references, vary angle and depth, and publish dimension errors alongside failure cases. Until then, Landbell helps people explore a possible layout and identify what to verify before moving day.&lt;/p&gt;

</description>
      <category>mlhacks</category>
      <category>devchallenge</category>
      <category>hackathon</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
