  Storage, organizing, and decorating are an important part of home design.
While one can buy commercial items for many of these tasks, this can be costly,
and re-use is more sustainable. An alternative is a "home hack", a functional
assembly that can be constructed from existing household items. However, coming
up with such hacks requires combining objects to make a physically valid
design, which might be difficult to test if they are large, require nailing or
screwing something to the wall, or the designer has mobility limitations. In
this work, we present a design and visualization system for creating workable
functional assemblies, FabHacks, which is based on a solver-aided
domain-specific language (S-DSL) FabHaL. By analyzing existing home hacks
shared online, we create a design abstraction for connecting household items
using predefined types of connections. We provide a UI for FabHaL that can be
used to design assemblies that fulfill a given specification. Our system
leverages a physics-based solver that takes an assembly design and finds its
expected physical configuration. Our validation includes a user study showing
that users can create assemblies successfully using our UI and explore a range
of designs.
