digraph seeds {
    bgcolor="transparent"
    rankdir=TB
    pad=0.5
    nodesep=0.6
    ranksep=0.8

    node [
        fontname="Helvetica"
        fontsize=12
        style="filled"
        penwidth=2
    ]

    edge [
        penwidth=2
        color="#666666"
        arrowsize=0.8
    ]

    // Source code as seeds
    subgraph cluster_seed {
        label="CODE AS SEEDS"
        labeljust=l
        fontname="Helvetica"
        fontsize=13
        fontcolor="#2E7D32"
        style="dashed"
        color="#81C784"
        bgcolor="#E8F5E9"

        source [
            label="open source\ncode"
            shape=folder
            fillcolor="#C8E6C9"
            fontcolor="#1B5E20"
            color="#4CAF50"
        ]

        public_domain [
            label="public domain\nno license"
            shape=note
            fillcolor="#C8E6C9"
            fontcolor="#1B5E20"
            color="#4CAF50"
        ]

        reference [
            label="reference\nimplementation"
            shape=component
            fillcolor="#C8E6C9"
            fontcolor="#1B5E20"
            color="#4CAF50"
        ]
    }

    // Sprouting on abandoned technology
    subgraph cluster_sprout {
        label="SPROUT ON ANY ABANDONED TECHNOLOGY"
        labeljust=l
        fontname="Helvetica"
        fontsize=13
        fontcolor="#E65100"
        style="dashed"
        color="#FFB74D"
        bgcolor="#FFF3E0"

        python [label="Python" shape=box fillcolor="#FFE0B2" color="#FF9800" fontcolor="#E65100"]
        go [label="Go" shape=box fillcolor="#FFE0B2" color="#FF9800" fontcolor="#E65100"]
        rust [label="Rust" shape=box fillcolor="#FFE0B2" color="#FF9800" fontcolor="#E65100"]
        elixir [label="Elixir" shape=box fillcolor="#FFE0B2" color="#FF9800" fontcolor="#E65100"]
        js [label="JavaScript" shape=box fillcolor="#FFE0B2" color="#FF9800" fontcolor="#E65100"]
        any [label="any\nlanguage" shape=box fillcolor="#FFE0B2" color="#FF9800" fontcolor="#E65100" style="filled,dashed"]
    }

    // Distribution
    subgraph cluster_distribute {
        label="DISTRIBUTE FREELY"
        labeljust=l
        fontname="Helvetica"
        fontsize=13
        fontcolor="#1565C0"
        style="dashed"
        color="#64B5F6"
        bgcolor="#E3F2FD"

        bittorrent [label="BitTorrent\npeer-to-peer" shape=hexagon fillcolor="#BBDEFB" color="#2196F3" fontcolor="#0D47A1"]
        cloud [label="cloud\nobject store" shape=cylinder fillcolor="#BBDEFB" color="#2196F3" fontcolor="#0D47A1"]
        git [label="git\nrepositories" shape=octagon fillcolor="#BBDEFB" color="#2196F3" fontcolor="#0D47A1"]
    }

    // Connections
    source -> reference
    public_domain -> reference
    reference -> python
    reference -> go
    reference -> rust
    reference -> elixir
    reference -> js
    reference -> any

    python -> bittorrent
    go -> bittorrent
    rust -> cloud
    elixir -> cloud
    js -> git
    any -> git

    bittorrent -> cloud [style=dashed dir=both label="redundancy" fontsize=10 fontcolor="#666666"]
    cloud -> git [style=dashed dir=both label="mirrors" fontsize=10 fontcolor="#666666"]
}
