<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ndbx formatVersion="20" type="file" uuid="653dc4ff-b225-439c-8ca6-c91c8befce19">
    <property name="canvasHeight" value="1000"/>
    <property name="canvasWidth" value="1000"/>
    <property name="canvasX" value="0"/>
    <property name="canvasY" value="0"/>
    <node name="root" prototype="core.network" renderedChild="combine1">
        <node comment="margin between dots" name="add1" position="18.00,-20.00" prototype="math.add">
            <port name="value2" type="float" value="8.0"/>
        </node>
        <node name="add3" position="21.00,-8.00" prototype="math.add">
            <port name="value2" type="float" value="1.0"/>
        </node>
        <node comment="rings+1 = floor((sqrt(4*(dots-2)/3+1)-1)/2)+2" name="add4" position="21.00,-4.00" prototype="math.add">
            <port name="value2" type="float" value="2.0"/>
        </node>
        <node name="combine1" position="16.00,14.00" prototype="list.combine"/>
        <node name="divide1" position="21.00,-9.00" prototype="math.divide">
            <port name="value2" type="float" value="3.0"/>
        </node>
        <node name="divide2" position="21.00,-5.00" prototype="math.divide">
            <port name="value2" type="float" value="2.0"/>
        </node>
        <node name="ellipse1" position="14.00,12.00" prototype="corevector.ellipse">
            <port name="width" type="float" value="48.0"/>
            <port name="height" type="float" value="48.0"/>
        </node>
        <node name="ellipse2" position="18.00,12.00" prototype="corevector.ellipse">
            <port name="width" type="float" value="24.0"/>
            <port name="height" type="float" value="24.0"/>
        </node>
        <node comment="dot size" name="integer1" position="16.00,-22.00" prototype="math.integer">
            <port name="value" type="int" value="64"/>
        </node>
        <node comment="number of dots" name="integer3" position="23.00,-22.00" prototype="math.integer">
            <port name="value" type="int" value="91"/>
        </node>
        <node comment="output set as list" name="lookup1" outputRange="list" position="24.00,7.00" prototype="data.lookup">
            <port name="key" type="string" value="points"/>
        </node>
        <node name="multiply1" position="20.00,1.00" prototype="math.multiply"/>
        <node name="multiply2" position="23.00,1.00" prototype="math.multiply">
            <port name="value2" type="float" value="6.0"/>
        </node>
        <node name="multiply3" position="21.00,-10.00" prototype="math.multiply">
            <port name="value2" type="float" value="4.0"/>
        </node>
        <node name="polygon1" outputRange="list" position="20.00,3.00" prototype="corevector.polygon">
            <port name="radius" type="float" value="7.0"/>
            <port name="sides" type="int" value="6"/>
        </node>
        <node name="range1" position="21.00,-2.00" prototype="math.range">
            <port name="start" type="float" value="1.0"/>
            <port name="end" type="float" value="4.0"/>
        </node>
        <node name="resample1" position="22.00,5.00" prototype="corevector.resample">
            <port name="method" type="string" value="amount"/>
            <port name="points" type="int" value="6"/>
        </node>
        <node name="slice1" position="27.00,9.00" prototype="list.slice"/>
        <node name="sqrt1" position="21.00,-7.00" prototype="math.sqrt"/>
        <node name="subtract1" position="21.00,-11.00" prototype="math.subtract">
            <port name="value2" type="float" value="2.0"/>
        </node>
        <node name="subtract2" position="21.00,-6.00" prototype="math.subtract">
            <port name="value2" type="float" value="1.0"/>
        </node>
        <node name="subtract3" position="26.00,1.00" prototype="math.subtract">
            <port name="value2" type="float" value="1.0"/>
        </node>
        <conn input="combine1.list1" output="ellipse1"/>
        <conn input="combine1.list3" output="ellipse2"/>
        <conn input="ellipse1.width" output="integer1"/>
        <conn input="ellipse1.height" output="integer1"/>
        <conn input="ellipse2.width" output="integer1"/>
        <conn input="ellipse2.height" output="integer1"/>
        <conn input="add1.value1" output="integer1"/>
        <conn input="multiply1.value1" output="add1"/>
        <conn input="multiply1.value2" output="range1"/>
        <conn input="polygon1.radius" output="multiply1"/>
        <conn input="multiply2.value1" output="range1"/>
        <conn input="resample1.points" output="multiply2"/>
        <conn input="lookup1.list" output="resample1"/>
        <conn input="resample1.shape" output="polygon1"/>
        <conn input="multiply3.value1" output="subtract1"/>
        <conn input="divide1.value1" output="multiply3"/>
        <conn input="add3.value1" output="divide1"/>
        <conn input="sqrt1.value" output="add3"/>
        <conn input="subtract2.value1" output="sqrt1"/>
        <conn input="divide2.value1" output="subtract2"/>
        <conn input="slice1.list" output="lookup1"/>
        <conn input="ellipse2.position" output="slice1"/>
        <conn input="subtract1.value1" output="integer3"/>
        <conn input="subtract3.value1" output="integer3"/>
        <conn input="slice1.size" output="subtract3"/>
        <conn input="add4.value1" output="divide2"/>
        <conn input="range1.end" output="add4"/>
    </node>
</ndbx>
