gitextract_wpm0yi8j/ ├── .eslintrc.json ├── .github/ │ └── workflows/ │ └── main.yml ├── .gitignore ├── .npmignore ├── .travis.yml ├── bundle-shaders.py ├── changelog.md ├── license ├── package.json ├── rabbit-ear.js ├── readme.md ├── rollup.config.js ├── src/ │ ├── axioms/ │ │ ├── axioms.js │ │ ├── boundary.js │ │ ├── index.js │ │ └── validate.js │ ├── convert/ │ │ ├── foldToObj.js │ │ ├── foldToSvg.js │ │ ├── foldToSvg.md │ │ ├── general/ │ │ │ ├── dom.js │ │ │ ├── options.js │ │ │ ├── planarize.js │ │ │ └── svg.js │ │ ├── index.js │ │ ├── objToFold.js │ │ ├── opxToFold.js │ │ ├── svg/ │ │ │ ├── color.js │ │ │ ├── drawBoundaries.js │ │ │ ├── drawEdges.js │ │ │ ├── drawFaces.js │ │ │ ├── drawVertices.js │ │ │ ├── index.js │ │ │ ├── parse.js │ │ │ └── stylesheet.js │ │ ├── svgToFold.js │ │ └── svgToFold.md │ ├── diagrams/ │ │ ├── arrows.js │ │ ├── axiomArrows.js │ │ ├── general.js │ │ ├── index.js │ │ └── svgArrows.js │ ├── environment/ │ │ ├── detect.js │ │ ├── messages.js │ │ └── window.js │ ├── fold/ │ │ ├── bases.js │ │ ├── colors.js │ │ ├── frames.js │ │ ├── primitives.js │ │ ├── rabbitear.js │ │ └── spec.js │ ├── general/ │ │ ├── array.js │ │ ├── clone.js │ │ ├── cluster.js │ │ ├── get.js │ │ ├── hashCode.js │ │ ├── index.js │ │ ├── number.js │ │ ├── sort.js │ │ └── string.js │ ├── graph/ │ │ ├── add/ │ │ │ ├── edge.js │ │ │ └── vertex.js │ │ ├── boundary.js │ │ ├── clean.js │ │ ├── connectedComponents.js │ │ ├── count.js │ │ ├── cycles.js │ │ ├── directedGraph.js │ │ ├── disjoint.js │ │ ├── edges/ │ │ │ ├── circular.js │ │ │ ├── duplicate.js │ │ │ ├── lines.js │ │ │ └── overlap.js │ │ ├── epsilon.js │ │ ├── explode.js │ │ ├── faces/ │ │ │ ├── facePoint.js │ │ │ ├── matrix.js │ │ │ ├── planes.js │ │ │ └── winding.js │ │ ├── flaps.js │ │ ├── fold/ │ │ │ ├── flatFold.js │ │ │ ├── flatFoldSplitFace.js │ │ │ ├── foldGraph.js │ │ │ ├── foldGraphIntoSegments.js │ │ │ ├── foldGraphIntoSubgraph.js │ │ │ └── general.js │ │ ├── index.js │ │ ├── intersect.js │ │ ├── join.js │ │ ├── make/ │ │ │ ├── edges.js │ │ │ ├── edgesAssignment.js │ │ │ ├── edgesEdges.js │ │ │ ├── edgesFaces.js │ │ │ ├── edgesFoldAngle.js │ │ │ ├── edgesVertices.js │ │ │ ├── faces.js │ │ │ ├── facesEdges.js │ │ │ ├── facesFaces.js │ │ │ ├── facesVertices.js │ │ │ ├── index.js │ │ │ ├── lookup.js │ │ │ ├── vertices.js │ │ │ ├── verticesEdges.js │ │ │ ├── verticesFaces.js │ │ │ └── verticesVertices.js │ │ ├── maps.js │ │ ├── nearest.js │ │ ├── normalize.js │ │ ├── normals.js │ │ ├── orders.js │ │ ├── overlap.js │ │ ├── planarize/ │ │ │ ├── intersectAllEdges.js │ │ │ ├── makeFacesMap.js │ │ │ ├── planarize.js │ │ │ ├── planarizeCollinearEdges.js │ │ │ ├── planarizeCollinearVertices.js │ │ │ ├── planarizeMakeFaces.js │ │ │ └── planarizeOverlaps.js │ │ ├── planarize.js │ │ ├── pleat.js │ │ ├── populate.js │ │ ├── raycast.js │ │ ├── remove.js │ │ ├── rendering.js │ │ ├── replace.js │ │ ├── split/ │ │ │ ├── general.js │ │ │ ├── splitEdge.js │ │ │ ├── splitFace.js │ │ │ ├── splitGraph.js │ │ │ └── splitLine.js │ │ ├── subgraph.js │ │ ├── sweep.js │ │ ├── symmetry.js │ │ ├── transfer.js │ │ ├── transform.js │ │ ├── trees.js │ │ ├── triangulate.js │ │ ├── validate/ │ │ │ ├── validate.js │ │ │ ├── validateAssignments.js │ │ │ ├── validateOrders.js │ │ │ ├── validateReferences.js │ │ │ ├── validateReflexive.js │ │ │ ├── validateTypes.js │ │ │ └── validateWinding.js │ │ ├── vertices/ │ │ │ ├── clusters.js │ │ │ ├── collinear.js │ │ │ ├── duplicate.js │ │ │ ├── folded.js │ │ │ ├── isolated.js │ │ │ └── sort.js │ │ └── walk.js │ ├── index.js │ ├── layer/ │ │ ├── constraints3D.js │ │ ├── constraints3DEdges.js │ │ ├── constraints3DFaces.js │ │ ├── constraintsFlat.js │ │ ├── facesSide.js │ │ ├── general.js │ │ ├── getBranches.js │ │ ├── index.js │ │ ├── initialSolutionsFlat.js │ │ ├── layer.js │ │ ├── propagate.js │ │ ├── prototype.js │ │ ├── prototypeOneDepth.js │ │ ├── solve.js │ │ ├── solver.js │ │ ├── solverOneDepth.js │ │ ├── table.js │ │ ├── tacosTortillas.js │ │ └── transitivity.js │ ├── libTypes.d.ts │ ├── math/ │ │ ├── clip.js │ │ ├── compare.js │ │ ├── constant.js │ │ ├── convert.js │ │ ├── convexHull.js │ │ ├── encloses.js │ │ ├── index.js │ │ ├── intersect.js │ │ ├── line.js │ │ ├── matrix2.js │ │ ├── matrix3.js │ │ ├── matrix4.js │ │ ├── nearest.js │ │ ├── overlap.js │ │ ├── plane.js │ │ ├── polygon.js │ │ ├── polynomial.js │ │ ├── quaternion.js │ │ ├── radial.js │ │ ├── range.js │ │ ├── straightSkeleton.js │ │ ├── triangle.js │ │ └── vector.js │ ├── prototypes/ │ │ ├── graph.js │ │ └── index.js │ ├── singleVertex/ │ │ ├── degree4.js │ │ ├── flatFoldable.js │ │ ├── foldable.js │ │ ├── index.js │ │ ├── kawasaki.js │ │ └── maekawa.js │ ├── svg/ │ │ ├── arguments/ │ │ │ ├── makeCoordinates.js │ │ │ ├── makeViewBox.js │ │ │ └── semiFlattenArrays.js │ │ ├── colors/ │ │ │ ├── convert.js │ │ │ ├── cssColors.js │ │ │ ├── index.js │ │ │ └── parseColor.js │ │ ├── constructor/ │ │ │ ├── elements.js │ │ │ ├── extensions/ │ │ │ │ ├── arc/ │ │ │ │ │ └── index.js │ │ │ │ ├── arrow/ │ │ │ │ │ ├── index.js │ │ │ │ │ ├── init.js │ │ │ │ │ ├── makeArrowPaths.js │ │ │ │ │ ├── methods.js │ │ │ │ │ └── options.js │ │ │ │ ├── circle.js │ │ │ │ ├── curve/ │ │ │ │ │ ├── arguments.js │ │ │ │ │ ├── getCurveEndpoints.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── makeCurvePath.js │ │ │ │ │ └── methods.js │ │ │ │ ├── ellipse.js │ │ │ │ ├── g.js │ │ │ │ ├── index.js │ │ │ │ ├── line.js │ │ │ │ ├── maskTypes.js │ │ │ │ ├── origami/ │ │ │ │ │ ├── index.js │ │ │ │ │ ├── init.js │ │ │ │ │ └── methods.js │ │ │ │ ├── path.js │ │ │ │ ├── polys.js │ │ │ │ ├── rect.js │ │ │ │ ├── shared/ │ │ │ │ │ ├── dom.js │ │ │ │ │ ├── makeArcPath.js │ │ │ │ │ ├── transforms.js │ │ │ │ │ └── urls.js │ │ │ │ ├── style.js │ │ │ │ ├── svg/ │ │ │ │ │ ├── animation.js │ │ │ │ │ ├── getSVGFrame.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── makeBackground.js │ │ │ │ │ ├── methods.js │ │ │ │ │ └── touch.js │ │ │ │ ├── text.js │ │ │ │ └── wedge/ │ │ │ │ └── index.js │ │ │ └── index.js │ │ ├── environment/ │ │ │ ├── detect.js │ │ │ ├── lib.js │ │ │ ├── messages.js │ │ │ ├── strings.js │ │ │ └── window.js │ │ ├── general/ │ │ │ ├── algebra.js │ │ │ ├── cdata.js │ │ │ ├── dom.js │ │ │ ├── index.js │ │ │ ├── path.js │ │ │ ├── string.js │ │ │ ├── transforms.js │ │ │ └── viewBox.js │ │ ├── index.js │ │ └── spec/ │ │ ├── classes_attributes.js │ │ ├── classes_nodes.js │ │ ├── namespace.js │ │ ├── nodes.js │ │ ├── nodes_attributes.js │ │ └── nodes_children.js │ ├── text/ │ │ ├── axioms.json │ │ ├── edge_assignments.json │ │ ├── index.js │ │ └── instructions.json │ ├── types.js │ └── webgl/ │ ├── creasePattern/ │ │ ├── arrays.js │ │ ├── data.js │ │ ├── index.js │ │ ├── models.js │ │ ├── shaders/ │ │ │ ├── cp-100.frag │ │ │ ├── cp-100.vert │ │ │ ├── cp-300.frag │ │ │ ├── cp-300.vert │ │ │ ├── thick-edges-100.vert │ │ │ └── thick-edges-300.vert │ │ ├── shaders.js │ │ └── uniforms.js │ ├── foldedForm/ │ │ ├── arrays.js │ │ ├── data.js │ │ ├── index.js │ │ ├── models.js │ │ ├── shaders/ │ │ │ ├── model-100.frag │ │ │ ├── model-100.vert │ │ │ ├── model-300.frag │ │ │ ├── model-300.vert │ │ │ ├── outlined-model-100.frag │ │ │ ├── outlined-model-100.vert │ │ │ ├── outlined-model-300.frag │ │ │ ├── outlined-model-300.vert │ │ │ ├── simple-100.frag │ │ │ ├── simple-300.frag │ │ │ ├── thick-edges-100.vert │ │ │ └── thick-edges-300.vert │ │ ├── shaders.js │ │ └── uniforms.js │ ├── general/ │ │ ├── colors.js │ │ ├── index.js │ │ ├── model.js │ │ ├── view.js │ │ └── webgl.js │ ├── index.js │ └── readme.md ├── tests/ │ ├── axioms.axioms.test.js │ ├── axioms.boundary.test.js │ ├── axioms.validate.test.js │ ├── clean.js │ ├── convert.foldToObj.test.js │ ├── convert.foldToSvg.origami.test.js │ ├── convert.foldToSvg.test.js │ ├── convert.objToFold.test.js │ ├── convert.opxToFold.test.js │ ├── convert.svgToFold.test.js │ ├── diagram.arrows.axiom.test.js │ ├── diagram.arrows.simple.test.js │ ├── diagram.general.test.js │ ├── docs.js │ ├── environment.window.test.js │ ├── files/ │ │ ├── cp/ │ │ │ ├── bird-base.cp │ │ │ ├── square-fish.cp │ │ │ └── windmill.cp │ │ ├── fold/ │ │ │ ├── abstract-graph.fold │ │ │ ├── bad-edges.fold │ │ │ ├── bird-base-3d-cp.fold │ │ │ ├── bird-base-3d.fold │ │ │ ├── bird-disjoint-edges.fold │ │ │ ├── blintz-frames.fold │ │ │ ├── bowtie.fold │ │ │ ├── command-strip-with-back.fold │ │ │ ├── command-strip.fold │ │ │ ├── crane-cp-bmvfcj-simple.fold │ │ │ ├── crane-cp-bmvfcj.fold │ │ │ ├── crane-cp.fold │ │ │ ├── crane-step.fold │ │ │ ├── crane.fold │ │ │ ├── cube-octagon.fold │ │ │ ├── cycles-3d.fold │ │ │ ├── disjoint-cps.fold │ │ │ ├── disjoint-triangles-3d.fold │ │ │ ├── fan-cp.fold │ │ │ ├── fan-flat-cp.fold │ │ │ ├── fan-folded-through-cp.fold │ │ │ ├── fish-cp-3d.fold │ │ │ ├── flat-pleat-fish.fold │ │ │ ├── invalid-box-pleat-3d.fold │ │ │ ├── invalid-key-names.fold │ │ │ ├── invalid-mismatch-length.fold │ │ │ ├── invalid-mismatch-references.fold │ │ │ ├── invalid-self-intersect.fold │ │ │ ├── invalid-single-vertex-2d.fold │ │ │ ├── invalid-single-vertex-3d.fold │ │ │ ├── isolated-line-in-face.fold │ │ │ ├── kabuto.fold │ │ │ ├── kissing-squares.fold │ │ │ ├── kraft-bird-base.fold │ │ │ ├── layer-4-flaps.fold │ │ │ ├── layer-solver-conflict.fold │ │ │ ├── layers-3d-edge-edge.fold │ │ │ ├── layers-3d-edge-face.fold │ │ │ ├── layers-cycle-nonconvex.fold │ │ │ ├── layers-flat-grid.fold │ │ │ ├── layers-zipper.fold │ │ │ ├── maze-8x8.fold │ │ │ ├── maze-s.fold │ │ │ ├── maze-u.fold │ │ │ ├── moosers-train-carriage-fourth.fold │ │ │ ├── moosers-train-carriage.fold │ │ │ ├── moosers-train-engine.fold │ │ │ ├── moosers-train.fold │ │ │ ├── nested-frames.fold │ │ │ ├── no-faces.fold │ │ │ ├── non-flat-paper.fold │ │ │ ├── non-planar-100-chaotic.fold │ │ │ ├── non-planar-100-lines.fold │ │ │ ├── non-planar-25-lines.fold │ │ │ ├── non-planar-50-chaotic.fold │ │ │ ├── non-planar-50-lines.fold │ │ │ ├── non-planar-500-chaotic.fold │ │ │ ├── non-planar-75-lines.fold │ │ │ ├── non-planar-bird-base.fold │ │ │ ├── non-planar-nonconvex.fold │ │ │ ├── non-planar-polygons.fold │ │ │ ├── non-planar-square-fish.fold │ │ │ ├── overlapping-assignments.fold │ │ │ ├── panels-3x3-invalid.fold │ │ │ ├── panels-3x3.fold │ │ │ ├── panels-4x2.fold │ │ │ ├── panels-5.fold │ │ │ ├── panels-6x2-90deg.fold │ │ │ ├── panels-simple.fold │ │ │ ├── panels-zig-zag.fold │ │ │ ├── pleats-angle-3d.fold │ │ │ ├── preliminary-offset-cp.fold │ │ │ ├── randlett-flapping-bird.fold │ │ │ ├── random-triangles-3d.fold │ │ │ ├── resch-tess.fold │ │ │ ├── separated-parallel-edges.fold │ │ │ ├── square-fish-3d.fold │ │ │ ├── square-tube-with-overlap.fold │ │ │ ├── square-twist.fold │ │ │ ├── strip-weave-concave.fold │ │ │ ├── strip-weave.fold │ │ │ ├── strip-with-angle.fold │ │ │ ├── surrounded-square.fold │ │ │ ├── triangle-strip-2.fold │ │ │ ├── triangle-strip.fold │ │ │ ├── two-bird-cp.fold │ │ │ ├── wavy-miura-no-faces.fold │ │ │ ├── windmill-no-edges.fold │ │ │ ├── windmill-variations.fold │ │ │ └── windmill.fold │ │ ├── json/ │ │ │ ├── crane-faces-edges-overlap.json │ │ │ ├── crane-faces-faces-overlap.json │ │ │ ├── crane-layer-solver-no-depth.json │ │ │ ├── crane-layer-solver.json │ │ │ ├── cube-octagon-constraints.json │ │ │ ├── kabuto-constraints.json │ │ │ ├── kabuto-faces-faces-overlap.json │ │ │ ├── kabuto-layer-solver-no-depth.json │ │ │ ├── kabuto-layer-solver.json │ │ │ ├── kraft-bird-faces-faces-overlap.json │ │ │ ├── layer-table.json │ │ │ ├── maze-u-constraints.json │ │ │ ├── panels-3x3-layer-solver-no-depth.json │ │ │ ├── panels-3x3-layer-solver.json │ │ │ └── randlett-flapping-bird-layer-solver.json │ │ ├── obj/ │ │ │ ├── sphere-with-holes.obj │ │ │ └── stanford-bunny.obj │ │ └── opx/ │ │ ├── bird-base-2012.opx │ │ ├── bird-base.opx │ │ ├── one-crease.opx │ │ ├── square-fish.opx │ │ ├── test.opx │ │ └── windmill.opx │ ├── fold.bases.test.js │ ├── fold.colors.test.js │ ├── fold.frames.test.js │ ├── fold.spec.test.js │ ├── general.array.test.js │ ├── general.cluster.test.js │ ├── general.get.test.js │ ├── general.hashCode.test.js │ ├── general.number.test.js │ ├── general.sort.test.js │ ├── general.string.test.js │ ├── generate.test.js │ ├── graph.add.edge.test.js │ ├── graph.add.vertex.test.js │ ├── graph.boundary.test.js │ ├── graph.clean.test.js │ ├── graph.connectedComponents.test.js │ ├── graph.count.test.js │ ├── graph.countImplied.test.js │ ├── graph.cycles.test.js │ ├── graph.directedGraph.test.js │ ├── graph.disjoint.test.js │ ├── graph.edges.circular.test.js │ ├── graph.edges.duplicate.test.js │ ├── graph.edges.lines.test.js │ ├── graph.edges.overlap.test.js │ ├── graph.explode.test.js │ ├── graph.faces.facePoint.test.js │ ├── graph.faces.matrix.test.js │ ├── graph.faces.planes.getFacesPlane.test.js │ ├── graph.faces.planes.overlapping.test.js │ ├── graph.faces.winding.test.js │ ├── graph.flaps.test.js │ ├── graph.fold.flatFold.test.js │ ├── graph.fold.foldGraph.layers.test.js │ ├── graph.fold.foldGraph.test.js │ ├── graph.fold.foldGraphIntoSegments.test.js │ ├── graph.fold.foldGraphIntoSubgraph.test.js │ ├── graph.intersect.test.js │ ├── graph.intersect.vertices.test.js │ ├── graph.join.test.js │ ├── graph.make.edges.test.js │ ├── graph.make.edgesEdges.test.js │ ├── graph.make.edgesFaces.test.js │ ├── graph.make.facesFaces.test.js │ ├── graph.make.facesMatrix.test.js │ ├── graph.make.facesVertices.test.js │ ├── graph.make.facesWinding.test.js │ ├── graph.make.lookup.test.js │ ├── graph.make.verticesEdges.test.js │ ├── graph.make.verticesFaces.test.js │ ├── graph.make.verticesVertices.test.js │ ├── graph.maps.test.js │ ├── graph.nearest.test.js │ ├── graph.normalize.test.js │ ├── graph.normals.test.js │ ├── graph.orders.test.js │ ├── graph.overlap.components.test.js │ ├── graph.overlap.edgesEdges.test.js │ ├── graph.overlap.facesEdges.test.js │ ├── graph.overlap.facesFaces.test.js │ ├── graph.planarize.collinearEdges.test.js │ ├── graph.planarize.faceMap.test.js │ ├── graph.planarize.intersect.test.js │ ├── graph.planarize.new.test.js │ ├── graph.planarize.test.js │ ├── graph.planarizeOverlap.test.js │ ├── graph.pleat.test.js │ ├── graph.populate.test.js │ ├── graph.remove.test.js │ ├── graph.rendering.test.js │ ├── graph.replace.test.js │ ├── graph.split.splitEdge.test.js │ ├── graph.split.splitFace.test.js │ ├── graph.split.splitGraph.test.js │ ├── graph.split.splitLine.test.js │ ├── graph.subgraph.test.js │ ├── graph.sweep.test.js │ ├── graph.symmetry.test.js │ ├── graph.transfer.test.js │ ├── graph.transform.test.js │ ├── graph.trees.test.js │ ├── graph.triangulate.test.js │ ├── graph.validate.test.js │ ├── graph.vertices.clusters.test.js │ ├── graph.vertices.collinear.test.js │ ├── graph.vertices.duplicate.test.js │ ├── graph.vertices.folded.test.js │ ├── graph.vertices.isolated.test.js │ ├── graph.vertices.sort.test.js │ ├── graph.walk.test.js │ ├── index.html │ ├── layer.constraints3DEdges.edgesFaces.test.js │ ├── layer.constraints3DEdges.test.js │ ├── layer.constraints3DFaces.test.js │ ├── layer.constraints3d.test.js │ ├── layer.constraintsFlat.test.js │ ├── layer.facesSide.test.js │ ├── layer.general.test.js │ ├── layer.initialSolution.test.js │ ├── layer.layer.solveLayerOrders.test.js │ ├── layer.layer.solveLayerOrders3D.test.js │ ├── layer.propagate.test.js │ ├── layer.prototype.test.js │ ├── layer.solver.2D.test.js │ ├── layer.solver.3D.test.js │ ├── layer.table.test.js │ ├── layer.transitivity.test.js │ ├── lineno.js │ ├── math.algebra.matrix2.test.js │ ├── math.algebra.matrix3.test.js │ ├── math.algebra.matrix4.test.js │ ├── math.algebra.quaternion.test.js │ ├── math.algebra.vector.resize.test.js │ ├── math.algebra.vector.test.js │ ├── math.debug.test.js │ ├── math.general.array.test.js │ ├── math.general.constant.test.js │ ├── math.general.convert.test.js │ ├── math.general.function.test.js │ ├── math.general.get.test.js │ ├── math.general.sort.test.js │ ├── math.general.typeof.test.js │ ├── math.geometry.convexHull.test.js │ ├── math.geometry.line.test.js │ ├── math.geometry.nearest.test.js │ ├── math.geometry.polygon.test.js │ ├── math.geometry.radial.test.js │ ├── math.geometry.straightSkeleton.test.js │ ├── math.geometry.triangle.test.js │ ├── math.intersect.clip.line.test.js │ ├── math.intersect.clip.polygon.test.js │ ├── math.intersect.encloses.test.js │ ├── math.intersect.method.test.js │ ├── math.intersect.overlap.test.js │ ├── math.intersect.polyLine.test.js │ ├── math.intersect.split.test.js │ ├── math.intersect.test.js │ ├── math.overlap.test.js │ ├── math.primitives.circle.test.js │ ├── math.primitives.clip.test.js │ ├── math.primitives.ellipse.test.js │ ├── math.primitives.json.test.js │ ├── math.primitives.junction.test.js │ ├── math.primitives.line.test.js │ ├── math.primitives.matrix.test.js │ ├── math.primitives.paths.test.js │ ├── math.primitives.polygon.test.js │ ├── math.primitives.rect.test.js │ ├── math.primitives.types.test.js │ ├── math.primitives.vector.test.js │ ├── math.range.test.js │ ├── prototypes.cp.test.js │ ├── prototypes.graph.test.js │ ├── prototypes.static.test.js │ ├── singleVertex.degree4.test.js │ ├── singleVertex.flatFoldable.test.js │ ├── singleVertex.foldable.test.js │ ├── singleVertex.kawasaki.test.js │ ├── singleVertex.maekawa.test.js │ ├── svg.arrow.test.js │ ├── svg.attributes.test.js │ ├── svg.circle.test.js │ ├── svg.class.id.test.js │ ├── svg.colors.test.js │ ├── svg.coordinates.test.js │ ├── svg.dom.test.js │ ├── svg.ellipse.test.js │ ├── svg.environment.test.js │ ├── svg.line.test.js │ ├── svg.nodes.test.js │ ├── svg.object.assign.test.js │ ├── svg.path.test.js │ ├── svg.polygon.test.js │ ├── svg.primitives.test.js │ ├── svg.rect.test.js │ ├── svg.stylesheet.test.js │ ├── svg.svg.animation.test.js │ ├── svg.svg.args.test.js │ ├── svg.svg.background.test.js │ ├── svg.svg.controls.test.js │ ├── svg.svg.load.test.js │ ├── svg.svg.save.test.js │ ├── svg.svg.viewbox.test.js │ ├── svg.transforms.test.js │ ├── svg.types.test.js │ ├── svg.urls.test.js │ ├── svg.use.test.js │ ├── svg.window.test.js │ └── webgl.initialize.test.js ├── tsconfig.json └── typedoc.config.json