digraph EnergyFlow {
    labelfloat = true;
    ranksep = 0.6;
    nodesep = 0.4;
    sep = 1.0;
    overlap = voronoi;
    splines = true;
    newrank=true;

    subgraph power_source { // remove cluster_ to not visualize
        node [shape=box];
        label = Source;

        Light;
        Fuel;
        Steam;
        Radioisotope;
        Geothermal;
        Water;
    }

    subgraph cluster_power {
        node [style=filled];
        label = Power;

        Electric -> Kinetic [label=Motor];
        Electric -> Heat [label=Heater];
        Kinetic -> Electric [label=Generator];
        Heat -> Electric [label=Thermoelectric];
        Heat -> Kinetic [label=Engine, weight = 0.1];
    }

    subgraph power_storage {
        node [style=filled, shape=box3d];
        label = Storage;

        Battery;
        "Compressed Air";
    }

    Radioisotope -> Heat [label=Heating, color="#00aa00"];
    Radioisotope -> Heat [label=RTG];
    Radioisotope -> Electric [label=Betavoltaic];
    
    Fuel -> Heat [label=Combustion];
    Fuel -> Electric [label="Fuel Cell"];
    Light -> Electric [label=Photovoltaic];
    //Light -> Heat [label="Thermal Energy", color="#00aa00"];
    Heat -> Steam [label=Boiling, weight = 2.0];
    Water -> Steam [color="#00aa00"];
    Steam -> Kinetic [label="Turbine thru Pipe", color="#00aa00", weight = 2.2];
    Geothermal -> Heat [color="#00aa00"];

    Electric -> Battery [dir=both, weight = 16.0];
    Kinetic -> "Compressed Air" [dir=both];
}
