Best graphics package for curve manipulation by user?

Hi all. I am working on an application where geometry can be manipulated by the user and subsequently saved to a database and be made shareable. I’m fairly new to meteor and was wondering what graphics package would be recommended for this type of work (more background below). Right now I am leaning towards D3.

Requirements:

  • 2D graphing/visualization
  • Ability to designate between moveable and non-moveable items on the graph (e.g. If a bezier curve is used, I’d only want to allow the user to manipulate the control points while the bezier points are recalculated in the background and updated)

Optional:

  • 3D Visualization (in addition to 2D)
  • Ability to loft in 3D based on 2D curves.

Thank you for your help! Please let me know if you have any questions or concerns or perhaps some examples of this on other sites. Thanks!