A software system based on deep neural network (DNN) technology was designed and trained to recognize fault lines in 2D seismic vertical sections, and fault surfaces in 3D seismic cubes. The system was successfully tested on public domain data from several basins in New Zealand. The paper describes the key components of the system and explains how they were designed. A relatively small size window is used to scan 2D seismic sections. Two DNNs identify if the window contains a fault and output the vector corresponding to the fault segment in the window. After scanning the entire section, a clustering algorithm is applied to group these vectors in separate clusters corresponding to the faults in the section. Finally, a linear regression algorithm calculates the fault lines – not always straight – in the section. Fault lines in successive 2D vertical sections of a 3D cube are associated to form fault surfaces. The training data set that was created to train the DNNs contains 120,000 examples. The validation test set has 30,000 examples. A special workflow and software were developed to generate these 150,000 labelled examples with a mix of synthetic and real data. The results obtained are quite satisfactory: the success rate exceeds 95% on the validation test set. The vector clustering algorithm properly handles crossing faults. The system is designed to quickly learn to correct mistakes highlighted by geophysicists, like patterns wrongly identified as faults, or missed faults. This system was trained to identify fault patterns in seismic data just based on examples. The concept can easily be expanded to recognize many other types of patterns such as structural or stratigraphic traps, horizons, and types of seismic facies. This fault detection software is the first step toward a machine learning-based system for automated structural interpretation of seismic data.