diff --git a/d3/plugins/d3.superformula-tests.ts b/d3/plugins/d3.superformula-tests.ts
new file mode 100644
index 0000000000..3e7dd4d58e
--- /dev/null
+++ b/d3/plugins/d3.superformula-tests.ts
@@ -0,0 +1,40 @@
+///
+///
+
+function superformula() {
+ var size = 1000;
+
+ var x = d3.scale.ordinal()
+ .domain(d3.superformulaTypes)
+ .rangePoints([0, 960], 1);
+
+ var svg = d3.select("body").append("svg")
+ .attr("width", 960)
+ .attr("height", 500);
+
+ var small = d3.superformula()
+ .type(function (d) { return d; } )
+ .size(size);
+
+ var big = d3.superformula()
+ .type("square")
+ .size(size * 50)
+ .segments(360);
+
+ svg.selectAll("a")
+ .data(d3.superformulaTypes)
+ .enter().append("a")
+ .attr("xlink:title", String)
+ .attr("transform", function (d, i) { return "translate(" + x(d) + ",40)"; } )
+ .append("path")
+ .attr("class", "small")
+ .attr("d", small)
+ .on("mousedown", function () { d3.select(this).style("fill", "aliceblue"); } )
+ .on("mouseup", function () { d3.select(this).style("fill", null); } )
+ .on("click", function (d) { d3.select(".big").transition().duration(500).attr("d", big.type(d)); } );
+
+ svg.append("path")
+ .attr("class", "big")
+ .attr("transform", "translate(450,250)")
+ .attr("d", big);
+}
\ No newline at end of file
diff --git a/d3/plugins/d3.superformula.d.ts b/d3/plugins/d3.superformula.d.ts
new file mode 100644
index 0000000000..ce649446bf
--- /dev/null
+++ b/d3/plugins/d3.superformula.d.ts
@@ -0,0 +1,38 @@
+///
+
+
+declare module D3 {
+ interface SuperformulaPath
+ {
+ superformulaPath(params: number[], n: number, diameter: number): Superformula;
+ }
+
+
+ interface SuperformulaType
+ {
+ (any): any;//hans
+ m: number;
+ n1: number;
+ n2: number;
+ n3: number;
+ a: number;
+ b: number;
+ }
+
+ interface Superformula
+ {
+ (): any;
+ type(any): any;
+ param(name: string, value: number): Superformula;
+ size(x: number): Superformula;
+ segments(x: number): Superformula;
+ }
+
+
+ interface Base extends Selectors
+ {
+ superformula: Superformula;
+ superformulaPath: SuperformulaPath;
+ superformulaTypes: SuperformulaType[];
+ }
+}
\ No newline at end of file
diff --git a/d3/plugins/superformula.ts b/d3/plugins/superformula.ts
deleted file mode 100644
index bb1703c14f..0000000000
--- a/d3/plugins/superformula.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-
-interface ID3superformulaPath
-{
- superformulaPath(params: number[], n: number, diameter: number): ID3superformula;
-}
-
-
-interface ID3superformulaType
-{
- (any): any;//hans
- m: number;
- n1: number;
- n2: number;
- n3: number;
- a: number;
- b: number;
-}
-
-interface ID3superformula
-{
- (): any;
- type(any): any;
- param(name: string, value: number): ID3superformula;
- size(x: number): ID3superformula;
- segments(x: number): ID3superformula;
-}
-interface ID3Selectors
-{
-
-}
-
-
-interface ID3Base extends ID3Selectors
-{
- keys: ID3superformulaType[];
- superformula: ID3superformula;
- superformulaPath: ID3superformulaPath;
- superformulaTypes: ID3superformulaType[];
-}