We introduce a bottom-up model for jointly finding many boundary elements in an image, including edges, curves, corners and junctions. The model explains boundary shape in each small patch using a junction with M angles and a freely-moving vertex. Images are analyzed by solving a non-convex optimization problem using purposefully-designed algorithms, cooperatively finding M+2 junction values at every pixel. The resulting field of junctions is simultaneously an edge detector, a corner/junction detector, and a boundary-aware smoothing of regional appearance. We demonstrate how it behaves at different scales, and for both single-channel and multi-channel input. Notably, we find it has unprecedented resilience to noise: It succeeds at high noise levels where previous methods for segmentation and for edge, corner and junction detection fail.