tinyspline - ANSI C library for NURBS, B-Splines, and Bézier curves with interfaces for C++, C#, D, Go, Java, Lua, Octave, PHP, Python, R, and Ruby

  •        592

TinySpline is a small, yet powerful library for interpolating, transforming, and querying arbitrary NURBS, B-Splines, and B├ęzier curves. The library is implemented in ANSI C (C89) and provides a wrapper for C++ along with auto-generated bindings for C#, D, Go, Java, Lua, Octave, PHP, Python, R, and Ruby. MIT License - see the LICENSE file in the source distribution.




Related Projects

Curve API (CAPI)

  •    Java

Implementation of various mathematical curves that define themselves over a set of control points. The API is written in Java. The curves supported are: Bezier, B-Spline, Cardinal Spline, Catmull-Rom Spline, Lagrange, Natural Cubic Spline, and NURBS.

verb - Open-source, cross-platform NURBS

  •    Javascript

verb is a library for creating and manipulating NURBS surfaces and curves in many languages including JavaScript. verb provides advanced tools like derivative evaluation, adaptive tessellation, and intersection. Verb provides a concurrent execution runtime via WebWorkers in modern browsers and thread pools on other platforms and is suitable for use in a datacenter or in the browser.

jquery.path - Animatation for arcs and bezier curves with jQuery

  •    Javascript

Animatation for arcs and bezier curves with jQuery

bezierinfo - A Primer on Bezier Curves

  •    PHP

A Primer on Bezier Curves

Waterways - A tool to generate river meshes with flow and foam maps based on bezier curves.

  •    GDScript

A tool to generate river meshes with flow and foam maps based on bezier curves. Try out the demo project for an example. Copy the folder addons/waterways into your project and activate the add-on from the Project -> Project Settings... -> Plugins menu.

XNA Bezier Path Lighting

  •    CSharp

Bezier Path Lighting provides a new way to light virtual worlds in XNA. This new lighting approach employs Bezier Curves to create lights with "length", unlike traditional point or spot lights. This project is written in C# for XNA, but can be applied to other graphics libraries.

Nurbana 3D NURBS Modeler


This is a complete 3D NURBS modeling system capable of editing complex curves and surfaces. The modeler offers several higher level modeling tools such as lofting, blending, subdividing, and surface fitting.

bezierjs - A nodejs and client-side library for (cubic) Bezier curve work

  •    Javascript

A node.js and client-side library for (quadratic and cubic) Bezier curve work. For a Demo and the API, hit up either pomax.github.io/bezierjs or read the souce (./lib for the library code, start at index.js).

Btraj - Bezier Trajectory Generation for Autonomous Quadrotor, ICRA 2018

  •    C++

Btraj is an online UAV planning framework used to generate safe, dynamically feasible trajectories in previous unknown environments. It can be divided as front-end path finding module and back-end trajectory optimization module. In the front-end, we provide two alternates: Fast Marching*(FM*) on a velocity field and A* on a pure grid map. A flight corridor consists of cubes are generated based on the path. In the back-end, we utilize properties of Bezier curve to confine the piecewise Bezier curves entirely within the corridor and dynamical limits. For details we refer readers to our paper. Authors:Fei Gao and Shaojie Shen from the HUKST Aerial Robotics Group.

Einspline B-spline library

  •    C

einspline is a C library for the creation and evaluation of interpolating cubic basis splines (B-splines) in 1D, 2D, and 3D. It supports both uniform and nonuniform meshes, single and double precision, and real and complex data.

Bezier Loop

  •    Python

A python demo with connected bezier curves and a supplied background image.

jquery.path - Animatation for arcs and bezier curves with jQuery

  •    Javascript

Provides animation along bezier and circular arcs. The animation engine in jQuery is focussed on single dimensional animation - hence it's difficult to animate two variables along a path.

morpheus - A Brilliant Animator

  •    Javascript

A Brilliant Animator. Morpheus lets you "tween anything" in parallel on multiple elements; from colors to integers of any unit (px, em, %, etc), with easing transitions and bezier curves, including CSS3 transforms (roate, scale, skew, & translate) -- all in a single high-performant loop utilizing the CPU-friendly requestAnimationFrame standard.

ToggleDrawable - Easy drawable animation using beziers curves.

  •    Java

ToggleDrawable helps to create animated drawable transitions using a minimalistic and clean API. The implementation relies on bezier curves instead of SVG graphics, and is compatible below API 19. Look at the sample.

BRL-CAD - Solid Modeling System

  •    Java

BRL-CAD is a powerful cross-platform constructive solid geometry solid modeling system that includes an interactive geometry editor, ray-tracing for rendering amp; geometric analyses, network distributed framebuffer support, image & signal-processing tools.

python-ecdsa - pure-python ECDSA signature/verification

  •    Python

This is an easy-to-use implementation of ECDSA cryptography (Elliptic Curve Digital Signature Algorithm), implemented purely in Python, released under the MIT license. With this library, you can quickly create keypairs (signing key and verifying key), sign messages, and verify the signatures. The keys and signatures are very short, making them easy to handle and incorporate into other protocols. This library provides key generation, signing, and verifying, for five popular NIST "Suite B" GF(p) curves, with key lengths of 192, 224, 256, 384, and 521 bits. The "short names" for these curves, as known by the OpenSSL tool (openssl ecparam -list_curves), are: prime192v1, secp224r1, prime256v1, secp384r1, and secp521r1. It also includes the 256-bit curve used by Bitcoin, whose short name is secp256k1. No other curves are included, but it would not be too hard to add more.


  •    C++

A C++ library to manipulate and create NURBS curves and surfaces.

nsplines - Curve approximation


A set of *.m files for use with GNU Octave and *.sci files for SciLab. The purpose is to approximate measurement curves using natural splines.

react-designer - Editable vector graphics in your react components.

  •    Javascript

Easy to configure, lightweight, editable vector graphics in your react components. All the entities are pure react components except action strategies in react-designer. I have tried to explain that. I'm starting with components.

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.