Day 37 — Placement Corrections, Wall Editing, and Refactoring for Stability

Context

Today was about stabilizing the Home_Edit system as it grows in complexity. As more features stack on top of placement and editing, small architectural ambiguities start to surface quickly.


Placement & Re‑Placement Fixes

I corrected several issues related to placing and re‑placing interior items. These bugs mostly showed up when:

  • Moving an item after it had already been placed
  • Switching surfaces or cameras mid‑edit
  • Re‑selecting objects across different edit states

Fixing these helped reduce a number of frustrating edge cases.

Overlap Rules & Layering

I also added explicit support for controlled overlap between item types:

  • Rugs can overlap with furniture
  • Furniture cannot overlap with other furniture

This introduces a simple but important layering system that mirrors expectations from cozy life‑sim games and makes interiors feel more flexible without becoming chaotic.

Wall Placement Progress

I made meaningful progress on wall placement:

  • Wall‑mounted items are now supported
  • I successfully placed a TV on the wall

This validated the wall coordinate system and camera alignment approach, even though more refinement is still needed.

Refactoring for Clear Ownership

A large portion of the day went into refactoring. I found:

  • Duplicate logic spread across multiple components
  • Unclear ownership of placement state and validation
  • Implicit assumptions that were no longer true as the system expanded

These were strong signals that more components were needed to centralize responsibilities and reduce coupling.

Current State

Before refactoring, the system felt extremely fragile—small changes could cause cascading regressions. While this refactor required a lot of back‑and‑forth with coding agents and frequent testing, the system is already feeling more resilient.


Summary

What I accomplished:

  • Fixed several placement and re‑placement bugs.
  • Added controlled overlap rules for interior items.
  • Enabled wall‑mounted item placement (TV).
  • Began implementing wall editing support.
  • Refactored components to reduce duplication and clarify ownership.

What I learned:

  • Layering rules are essential for intuitive interior customization.
  • Wall placement introduces a new level of spatial complexity.
  • Fragility is often a symptom of unclear responsibility boundaries.
  • Refactoring early prevents exponential pain later, even if it slows progress short‑term.