1graph desktop {
  2    label = "desktop"
  3    rankdir = LR
  4    
  5    subgraph legend {
  6        label = "Legend"
  7        
  8        legend_label [label = ""; xlabel = "Legend"; width = 0; height = 0]
  9        unavailable [label = ""; xlabel = "unavailable"; width = 0.25; height = 0.25; shape = box; color = grey]
 10        unused [label = ""; xlabel = "unused slot"; width = 0.25; height = 0.25; shape = box]
 11        used [label = ""; xlabel = "used slot"; width = 0.25; height = 0.25; shape = box; color = "#333"; style = filled]
 12        component [label = ""; xlabel = "component"; width = 0.25; height = 0.25; shape = box; color = grey; style = filled]
 13        warning [label = ""; xlabel = "warning"; width = 0.25; height = 0.25; shape = box; color = orange; style = filled]
 14        
 15        legend_label -- unavailable [style = invis]
 16        legend_label -- unused [style = invis]
 17        legend_label -- used [style = invis]
 18        legend_label -- component [style = invis]
 19        legend_label -- warning [style = invis]
 20    }
 21    
 22    node [
 23        shape = box
 24        height = 0.5
 25        width = 1
 26    ]
 27    
 28    edge [
 29        penwidth = 1.25
 30    ]
 31    
 32    subgraph cluster_motherboard {
 33        label = "Motherboard: Aorus MASTER rev1.2 (X570)"
 34        
 35        subgraph cluster_usb3 {
 36            label = "USB headers"
 37            
 38            usb2_1
 39            usb2_2
 40            
 41            usb3_1
 42            usb3_2
 43            
 44            usbc_1
 45        }
 46        
 47        subgraph cluster_sata {
 48            label = "SATA 3.0\nheaders"
 49            
 50            sata_1
 51            sata_2
 52            sata_3
 53            sata_4
 54            sata_5
 55            sata_6
 56        }
 57        
 58        subgraph cluster_nvme {
 59            label = "3x PCIe 4.0 M.2 NVME"
 60            
 61            # The Aorus Master 1.2 has 3x NVME slots
 62            nvme_1
 63            nvme_2
 64            nvme_3
 65            
 66            # My NVME drives
 67            nvme_drive_1 [label = "WD SN850 2TB PCIe 4.0"; width = 2.5; color = grey; style = filled]
 68            nvme_drive_2 [label = "WD SN850 2TB PCIe 4.0"; width = 2.5; color = grey; style = filled]
 69            nvme_drive_3 [label = "WD SN850 2TB PCIe 4.0"; width = 2.5; color = grey; style = filled]
 70            
 71            nvme_1 -- nvme_drive_1; nvme_1 [color = "#333"; style = filled; fontcolor = white]
 72            nvme_2 -- nvme_drive_2; nvme_2 [color = "#333"; style = filled; fontcolor = white]
 73            nvme_3 -- nvme_drive_3; nvme_3 [color = "#333"; style = filled; fontcolor = white]
 74            
 75            # Filling the 3rd NVME slot disables two SATA slots
 76            sata_5 [color = grey; fontcolor = grey]
 77            sata_6 [color = grey; fontcolor = grey]
 78            sata_5 -- nvme_3 [color = orange]
 79            sata_6 -- nvme_3 [color = orange]
 80        }
 81
 82        subgraph cluster_pcie {
 83            label = "PCIe slots"
 84            
 85            subgraph pcie_cpu_lanes {
 86                label = "PCIe slots from CPU lanes are linked."
 87                rank = same
 88                
 89                pcie_x16_1 [label = "PCIe 4.0 x16 (running x16)"; width = 3]
 90                pcie_x16_2 [label = "PCIe 4.0 x16 (running x8)"; width = 3; color = grey; fontcolor = grey]
 91                # using the 8x slot reduces the 16x to 8x
 92                pcie_x16_2 -- pcie_x16_1 [color = orange; tailport = n; headport = s]
 93            }
 94            pcie_x1 [label = "PCIe 4.0 x1 (running x1)"; width = 3]
 95            pcie_x16_3 [label = "PCIe 4.0 x16 (running x4)"; width = 3]
 96            
 97            # graphics card 16x
 98            asrock_5700xt [label = "AMD RX 5700 XT\n(AsROCK Challenger D OC 8GB)"; color = grey; style = filled]
 99            pcie_x16_1 -- asrock_5700xt; pcie_x16_1 [color = "#333"; style = filled; fontcolor = white]
100            
101            # capture card 4x
102            bm_ip4k [label = "Blackmagic Intensity Pro 4K"; width = 3; color = grey; style = filled]
103            pcie_x16_3 -- bm_ip4k; pcie_x16_3 [color = "#333"; style = filled; fontcolor = white]
104        }
105
106        subgraph cluster_cpu {
107            label = "AM4 socket"
108            
109            cpu [label = "AMD Ryzen 5950x"; width = 2; color = grey; style = filled]
110        }
111        
112        subgraph cluster_ram {
113            label = "DDR4 RAM slots"
114            
115            ram_1
116            ram_2
117            ram_3
118            ram_4
119            
120            # 128gb kit
121            vengeance_128gb [label = "128GB (4x32GB) DDR4-3600 C18\nCorsair Vengeance LPX"; width = 3.5; height = 2.75; color = grey; style = filled]
122            ram_1 -- vengeance_128gb; ram_1 [color = "#333"; style = filled; fontcolor = white]
123            ram_2 -- vengeance_128gb; ram_2 [color = "#333"; style = filled; fontcolor = white]
124            ram_3 -- vengeance_128gb; ram_3 [color = "#333"; style = filled; fontcolor = white]
125            ram_4 -- vengeance_128gb; ram_4 [color = "#333"; style = filled; fontcolor = white]
126        }
127
128    }
129    
130    subgraph cluster_case {
131        label = "Case: CM HAF 932"
132        
133        subgraph cluster_front_bays {
134            label="5.25\" Front bays"
135            
136            # 6x front bays
137            bay_1
138            bay_2
139            bay_3
140            bay_4
141            bay_5
142            bay_6
143            
144            # Bay 1: USB 3.0 card reader
145            kingwin_bay_adapter [label = "Kingwin 5.25\" to 3.5\" adapter"; width = 3]
146            vantec_card_reader [label = "3.5\" USB 3.0 Card Reader\n(Vantec UGT-CR935)"; width = 3; color = grey; style = filled]
147            bay_1 -- kingwin_bay_adapter -- vantec_card_reader; bay_1 [color = "#333"; style = filled; fontcolor = white]
148            vantec_card_reader -- usb3_1 [tailport = n; headport = w]; usb3_1 [color = "#333"; style = filled; fontcolor = white]
149            
150            # Bay 2: SATA hotswap bays
151            syba_hotswap [label = "Syba 5.25\" Hotswap Bay"; width = 3; color = grey; style = filled]
152            bay_2 -- syba_hotswap; bay_2 [color = "#333"; style = filled; fontcolor = white]
153            syba_hotswap -- sata_1 [tailport = e; headport = w]; sata_1 [color = "#333"; style = filled; fontcolor = white]
154            syba_hotswap -- sata_2 [tailport = e; headport = w]; sata_2 [color = "#333"; style = filled; fontcolor = white]
155            syba_hotswap -- usb3_2 [tailport = e; headport = w]; usb3_2 [color = "#333"; style = filled; fontcolor = white]
156            
157            # Bay 3: DVD drive
158            asus_dvd [label = "ASUS DVD Drive 24x"; width = 3; color = grey; style = filled]
159            bay_3 -- asus_dvd; bay_3 [color = "#333"; style = filled; fontcolor = white]
160            asus_dvd -- sata_3 [tailport = e; headport = w]; sata_3 [color = "#333"; style = filled; fontcolor = white]
161
162            # Bay 4: Kloud City drawer
163            kloud_city_1 [label = "Kloud City 5.25\" drawer"; width = 3; color = grey; style = filled]
164            bay_4 -- kloud_city_1; bay_4 [color = "#333"; style = filled; fontcolor = white]
165            
166            # Bays 5-6: Evercool Dual
167            evercool_dual [label = "Evercool Dual\n5.25\" to 3x 3.5 drives"; height = 1.25; width = 3]
168            bay_5 -- evercool_dual; bay_5 [color = "#333"; style = filled; fontcolor = white]
169            bay_6 -- evercool_dual; bay_6 [color = "#333"; style = filled; fontcolor = white]
170        }
171        
172        subgraph cluster_drive_sleds {
173            label = "Drive sleds"
174            
175            sled_1
176            sled_2
177            sled_3
178            sled_4
179            sled_5
180        }
181        
182        subgraph cluster_cpu_clearance {
183            label = "CPU cooler\nclearance: 172mm"
184            
185            cpu_cooler [label = "Noctua NH-D15S"; width = 1.75 color = grey; style = filled]
186        }
187        
188    }
189   
190}