forcelinks = {
var width = 500
var height= 500
var svg = d3.select(DOM.svg(width, height))
var nodes = data.nodes;
var arcs = data.links;
var layout = d3.forceSimulation(nodes)
.force('center', d3.forceCenter(width/2,height/2))
.force('collisions', d3.forceCollide().radius(d => d.r))
.force('links', d3.forceLink().links(arcs))
.force('charge', d3.forceManyBody().strength(-10))
.on('tick', ticked)
var color = d3.scaleOrdinal()
.domain(d3.map(nodes, d => d.group))
.range(d3.schemeAccent);
var edges = svg.append("g")
.selectAll("line")
.data(arcs)
.enter()
.append("line")
.attr("stroke", "black")
.attr("stroke-width", 1)
var node = svg.append("g")
.selectAll("circle")
.data(nodes)
.enter()
.append("circle")
.attr("fill", d => color(d.group))
.attr("r", 6)
function ticked(){
node
.attr('cx', d => d.x)
.attr('cy', d => d.y)
edges
.attr("x1", d => d.source.x)
.attr("y1", d => d.source.y)
.attr("x2", d => d.target.x)
.attr("y2", d => d.target.y)
}
return svg.node()
}