  We consider the problem of fairly allocating indivisible public goods. We
model the public goods as elements with feasibility constraints on what subsets
of elements can be chosen, and assume that agents have additive utilities
across elements. Our model generalizes existing frameworks such as fair public
decision making and participatory budgeting. We study a groupwise fairness
notion called the core, which generalizes well-studied notions of
proportionality and Pareto efficiency, and requires that each subset of agents
must receive an outcome that is fair relative to its size.
  In contrast to the case of divisible public goods (where fractional
allocations are permitted), the core is not guaranteed to exist when allocating
indivisible public goods. Our primary contributions are the notion of an
additive approximation to the core (with a tiny multiplicative loss), and
polynomial time algorithms that achieve a small additive approximation, where
the additive factor is relative to the largest utility of an agent for an
element. If the feasibility constraints define a matroid, we show an additive
approximation of 2. A similar approach yields a constant additive bound when
the feasibility constraints define a matching. More generally, if the
feasibility constraints define an arbitrary packing polytope with mild
restrictions, we show an additive guarantee that is logarithmic in the width of
the polytope. Our algorithms are based on variants of the convex program for
maximizing the Nash social welfare, but differ significantly from previous work
in how it is used. Our guarantees are meaningful even when there are fewer
elements than the number of agents. As far as we are aware, our work is the
first to approximate the core in indivisible settings.
