A .dot file is a Graphviz DOT description: a small declarative language for graphs, in which nodes and edges are written as statements — a -> b — with optional attributes controlling labels, shapes and colours. It describes the graph's structure and leaves the layout to the renderer.
Private for supported formats — processed in your browser
Convert supported files
Runs on your device
+
Drop DOT files here
Batch files can each use a different output. Nothing uploads for local conversions.
Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.
DOT was created at AT&T Bell Labs in the early 1990s as the input language for Graphviz, whose real contribution was the layout engines — dot for hierarchies, neato and fdp for spring models — that compute positions nobody wants to place by hand. It became the default way to draw a graph programmatically, and remains embedded in documentation toolchains, profilers and dependency analysers.
How DOT works
digraph declares a directed graph using -> edges; graph declares an undirected one using --.
Attributes attach to graphs, nodes and edges in square brackets, and defaults cascade by declaration order.
Subgraphs whose names begin with cluster_ are drawn as visually enclosed boxes.
Node positions are computed by the chosen layout engine, not specified in the file.
rankdir controls flow direction, which is the single attribute most often needed to make a diagram legible.
When to use DOT
Rendering dependency, call and state-machine diagrams from generated data
Documentation pipelines that draw diagrams from source rather than maintaining images
Visualising profiler and build-system output
Converting a graph into an interchange format for analysis tooling
Strengths and limitations
Strengths
Automatic layout — the hard part of drawing a graph is done for you
Compact and readable, so diagrams can be generated and diffed as text
Long-established tooling embedded across many ecosystems
Limitations
Layout control is indirect; fighting the engine for a specific arrangement is frustrating
The attribute vocabulary is large and unevenly documented
Large graphs become illegible regardless of layout engine
Compatibility
Read by Graphviz and by many libraries and services that embed it, including documentation generators and profiling tools. Novus Convert parses the graph locally and converts to GraphML, GEXF, JSON and a rendered SVG.
Nodes, edges, direction and label attributes are preserved. Layout and styling attributes have no equivalent in the graph interchange targets and are not carried across.