Kicadocaml is a small project that reads and writes Kicad board (.brd) files produced by Kicad's pcbnew software. It is a full layout editor in its own right, and includes DRC support, push routing, infinite zoom, triangle-mesh zone filling, BOM generation, connectivity testing, and arraying of components that are on duplicated schematic sub-sheets. To do the last this kicadocaml reads and understands both kicad's .brd files and the .sch files. This can also be used to hide components not on a given sheet to simplify and organize layout, if needed.