This document describes Cortex, a de novo genome assembler that uses colored de Bruijn graphs to assemble multiple genomes simultaneously and detect genetic variants without reference sequences. It discusses four approaches Cortex uses: bubble calling to detect variants from repeats or errors, path divergence to find complex variants, multiple-sample analysis to improve accuracy, and genotyping known loci. The document outlines the algorithms and implementations of these approaches, and provides examples of use cases and limitations.