graph G { node [ shape=box, fontcolor="#ffffff", color="#40a9e3", style="filled" ] label="The IPv6 eye" subgraph cluster_sample { wired [ label="Wired Internet" ] wifi [ label="WiFi Internet" ] modem0 [ label="4G Internet" ] ipv6vpn [ label="IPv6VPN.ch" shape=oval ] label="Any eye" eye0 [ label="Eye Base" ] } subgraph cluster_regular { label="The eye" eye1 [ label="Eye Base" ] cam1 [ label="USB Camera" ] eye1--cam1 } eye0--{wifi,wired,modem0} [ style=dotted ] {wired,wifi,modem0}--ipv6vpn [ style=dotted ] subgraph cluster_auto { label="The autonomous eye" eye2 [ label="Eye Base" ] usb2 [ label="USB Hub" ] cam2 [ label="USB Camera" ] modem2 [ label="4G modem" ] bat2 [ label="Battery" ] eye2--usb2 usb2--cam2 usb2--modem2 bat2--eye2 } subgraph cluster_fully_auto { label="The fully autonomous eye" eye3 [ label="Eye Base" ] usb3 [ label="USB Hub" ] cam3 [ label="USB Camera" ] modem3 [ label="4G modem" ] bat3 [ label="Battery" ] solar3 [ label="Solar Panel" ] eye3--usb3 usb3--cam3 usb3--modem3 solar3--bat3 bat3--eye3 } subgraph cluster_car { label="The car eye" eye4 [ label="Eye Base" ] usb4 [ label="USB Hub" ] cam4 [ label="USB Camera" ] modem4 [ label="4G modem" ] carusb4 [ label="Car USB Charger" ] eye4--usb4 usb4--cam4 usb4--modem4 carusb4--eye4 } }