If the photo is the product, run the model where the photo already lives
Applied scientist turning one room photo into a place you can furnish
HausJam's two heavy passes, about twenty seconds to clean a room and twenty to estimate light, are the line items that would destroy a consumer margin the moment traffic arrives. Titus's preferred answer is to run the first useful slice on the user's own machine, an eight or nine gigabyte model that cold-starts in about twenty seconds and, if they can pull it off, still works on integrated graphics. That is the same economic move Naramine made with in-browser Kokoro, applied to furniture: the free or early tier brings its own compute, and the cloud becomes an upgrade rather than the default. When your unit of value is an image the user already has, ask whether that image ever needs to leave the laptop. Recurring GPU rent is a tax on success. Hardware the user already paid for is not.
Related advice
Ship the on-device slice before the cloud starts billing you
HausJam's expensive seconds are image passes, and image passes billed in the cloud will eat a consumer product the first week it works. Titus's V0.5 is deliberately smaller: a room cleaner that runs on the user's machine, inside a 4 to 8 GB memory budget if they can hold it, so the first useful magic has a marginal cost near zero. Steam then becomes a storefront for a tool, not a server bill in disguise. The pattern is the same one indie founders keep relearning with local models: put the wedge on hardware the user already owns, and let the cloud be an upgrade for the people who need the heavy lighting pass. If your v1 requires a GPU invoice on every photo, you do not have a consumer business yet. You have a demo with a fuse.
Do not hide your price inside the retailer's invoice
Charging furniture sellers, or folding HausJam into the price of a sofa, looks like distribution and behaves like a tax the shop will resent. Titus and Andrei want the end user to pay, because that is who received a furnished room and who can understand a credit pack or an apartment project. Seller-pays also poisons the catalog: every SKU becomes an ad, and the planner stops being a tool. Keep the invoice on the side that gets the outcome. Retailers can still partner; they should not be the meter.
Consumers furnish in projects. Price the project.
A ten-euro subscription with a handful of rooms was on the table and did not survive contact with the room. People do not rearrange an apartment every month; they do it in bursts, a move, a renovation, a new child, and a calendar tax on the quiet months is the same mistake Naramine refused for web-novel binges. What survived were project-shaped offers: credits you top up, a time-box on a room, a pack for one apartment, a five-room house in the 50 to 100 euro range with several layouts, maybe a lifetime deal for early users with a room cap. Professionals can still have a seat price, because their week is volume. Consumers need a price that matches a job they will finish. Before you copy a SaaS page, ask how often the job happens. If the answer is "twice a decade," you are not selling a seat.
Reopen the problem when the first assumption dies
Titus's working habit, carried from Intel, Ring, and Smilecloud into HausJam, is to treat a broken output as evidence that the problem was mis-stated, not as a request for a prettier model. If the floor is wrong, the task is no longer "place the sofa," it is "why did we believe this plane was the floor?" That sounds philosophical and is in fact operational: it stops a team from spending a month fine-tuning their way around a bad prior. The general rule for anyone shipping vision or geometry is to keep the original problem statement on a short leash. When the demo lies, rewrite the job, add the measurement you skipped, or change the input, two photos instead of one, before you buy another training run. Stubbornness belongs to the user outcome, not to last week's framing.
Extracted from
Indie TM #14: One Photograph, Then the Furniture Moves