Repository navigation
Releases
Curva 0.4.2 (preview)
Curva 0.4.2, preview. Milestone 2: Rhino .3dm files opened and saved, blocks, live booleans,
and every Rhino NURBS command that was waiting on the geometry engine. A new icon too. Still early:
expect rough edges, and keep copies of anything you care about.
Download
| System | File |
|---|---|
| Windows (64-bit) | curva-v0.4.2-windows-x64-setup.exe: an installer for your user only, with no administrator rights |
| Linux (64-bit) | curva-v0.4.2-linux-x86_64.AppImage: make it executable (chmod +x) and run it |
| macOS (Apple silicon) | curva-v0.4.2-macos-arm64.dmg: open it and drag Curva to Applications |
The builds are not signed with a developer certificate yet:
- Windows: SmartScreen may warn about an unknown app. Choose "More info", then "Run anyway".
- macOS: the first time, open System Settings → Privacy & Security and choose "Open Anyway".
If you have 0.4.1, Curva offers this update in the command bar when it opens.
New since 0.4.1
Rhino files (.3dm)
- Open reads Rhino files from Rhino 5 to 8 as a new model, which then saves as a
.curvafile
beside the.3dm(never over it). Import adds a.3dm(or.curva) to the open model, its
layers merged by name. Export, ExportSelected and SaveAs write Rhino 7 files, which
Rhino 7 and 8 open. The File tab's Import and Export buttons run them. - What comes across: units, layers (nested ones as
Parent::Child), points, lines, polylines, arcs,
circles, NURBS and poly-curves exactly; surfaces, polysurfaces and solids with their trims; Rhino's
extrusion objects as solids; names, print widths, user text, groups, hidden and locked objects;
blocks and their instances; named views and named construction planes. - Meshes, SubD, point clouds, annotations, hatches and render settings are left out, and the command
bar says how many of each. - Curva's own live booleans and History are written as plain geometry.
- Written in Curva's own Rust, from the format openNURBS documents; a damaged file is refused with a
message, never a crash.
Blocks
- Block definitions and instances, nested, embedded in the model or linked to another file (read again
when that file changes): Block, Insert, BlockManager, ExplodeBlock, BlockEdit, and a Blocks panel.
Live booleans
- BooleanUnion, BooleanDifference, BooleanIntersection and BooleanSplit keep their inputs, hidden,
inside the result, and the result follows when you change them. EditBoolean and BreakBoolean.
Every Rhino NURBS command
- With the geometry engine: EdgeSrf, NetworkSrf, Patch, ExtendSrf, Untrim, Section, Contour,
Intersect, Project, MoveFace, PushPull, Shear, RebuildUV, CurvatureGraph, Cap. - With Curva's own geometry where the engine cannot yet: ExtractIsocurve, ShrinkTrimmedSrf, BlendSrf,
MatchSrf, Twist, Bend, Taper, Flow, CageEdit, Pull, InterpCrvOnSrf, OffsetCrvOnSrf, Silhouette,
UnrollSrf, ExtrudeFace, FilletSrf, ChamferSrf. Each is listed indocs/kernel/custom-operations.md
and checked against the engine before every release. - Sweep2 uses the engine's new two-rail sweep, certified within 0.001.
- Zebra and DraftAnalysis.
Organising
- Count, ChangeLayer, MatchProperties, Linetype, PrintWidth, SetUserText, GetUserText, Purge, Audit,
LockSwap, UnlockSelected, BringToFront, SendToBack, BringForward, SendBackward, DupFaceBorder,
TextObject, and NamedCPlane (construction planes saved by name, as NamedView saves views). - Trim, Lock, Unlock, Group, Ungroup, SelColor and Plan now work like every other command, with their
options at the prompt.
The icon
- The Drafting mark, with its architectural construction, is Curva's icon.
Fixed
- Ctrl+C, Ctrl+X and Ctrl+V on selected objects work again: since 0.4.0 the window had been
turning them into text clipboard events that never reached the model. Copied objects paste in
place, selected; text copied from elsewhere still pastes into the command line.
Known gaps
- Meshes and SubD come after Milestone 4; section hatches and the other drafting tools are
Milestone 3. - In shaded views, curves hidden behind a solid's faces cannot be snapped to; switch to Ghosted or
Wireframe to reach them.
Licences
Curva is MIT OR Apache-2.0. Each package includes THIRD-PARTY-LICENSES.html, ATTRIBUTION.md, and the
notices in licenses/.
Curva 0.4.1 (preview)
Curva 0.4.1, preview. Line weights in millimetres, every Rhino NURBS command the geometry engine
can do, exact geometry where 0.4.0 approximated, and no console window on Windows. Still early: expect
rough edges, and keep copies of anything you care about.
Download
| System | File |
|---|---|
| Windows (64-bit) | curva-v0.4.1-windows-x64-setup.exe: an installer for your user only, with no administrator rights |
| Linux (64-bit) | curva-v0.4.1-linux-x86_64.AppImage: make it executable (chmod +x) and run it |
| macOS (Apple silicon) | curva-v0.4.1-macos-arm64.dmg: open it and drag Curva to Applications |
The builds are not signed with a developer certificate yet:
- Windows: SmartScreen may warn about an unknown app. Choose "More info", then "Run anyway".
- macOS: the first time, open System Settings → Privacy & Security and choose "Open Anyway".
If you have 0.4.0, Curva offers this update in the command bar when it opens.
New since 0.4.0
Line weights
- Layers and objects have a print width in millimetres, as Rhino's Print Width: set it in the
Layers panel (the Width column) or in Properties, from Rhino's list (0.13 to 2 mm) or typed. Objects
follow their layer unless set. Every view shows the widths, at the screen's real size. - Lines are now drawn once, as thin strips with their own width, instead of three times side by side:
as fast as before at any width.
Commands: 31 more of Rhino's
- Curves: HandleCurve, Sketch (draw with the mouse button held), Conic, Hyperbola, BlendCrv,
OffsetMultiple, DupBorder, Extend (Line, Arc or Smooth, to boundaries or by a length), Fair,
CurveBoolean, Match, SimplifyCrv, Reparameterize, MakeUniform, Weight. - Surfaces and solids: ExtrudeCrvTapered, ExtrudeCrvAlongCrv, ExtrudeCrvToPoint, RailRevolve, Pyramid,
ExtractSrf, MergeAllFaces, Wirecut. - Organising and views: Distribute, SelColor, Lock, Unlock, Group, Ungroup, ShowEdges, Plan.
- Every one has an icon and a place in the Commands panel.
Exact where it was approximate
- ExtrudeSrf pulls surfaces straight out of the construction plane, as Rhino does, curved ones too
(it used to thicken them along their normal). The gumball's extrude circle does the same. - DupEdge copies the exact edge picked: a line, arc or NURBS curve, not the drawn polyline.
- ChangeDegree raises the degree without changing the shape, and closed curves stay closed.
- VolumeCentroid and AreaCentroid (for surfaces) are worked out from the exact geometry.
- Parabola and Paraboloid are exact.
docs/commands/rhino-parity.mdnotes, for every command, how it still differs from Rhino.
Windows
- No console window opens beside Curva.
Known gaps
- No Rhino (.3dm) import or export yet.
- 34 of Rhino's surface tools (Sweep2, NetworkSrf, EdgeSrf, Patch, BlendSrf, surface trimming and
others) wait on the geometry engine. - In shaded views, curves hidden behind a solid's faces cannot be snapped to; switch to Ghosted or
Wireframe to reach them.
Licences
Curva is MIT OR Apache-2.0. Each package includes THIRD-PARTY-LICENSES.html, ATTRIBUTION.md, and the
notices in licenses/.
Curva 0.4.0 (preview)
Curva 0.4.0, preview. A fixed Curva top bar and one panel system for everything, an AI Assistant in
its own panel, updates with one click, a gumball that extrudes and stretches, and 36 more of Rhino's
commands. Still early: expect rough edges, and keep copies of anything you care about.
Download
| System | File |
|---|---|
| Windows (64-bit) | curva-v0.4.0-windows-x64-setup.exe: an installer for your user only, with no administrator rights |
| Linux (64-bit) | curva-v0.4.0-linux-x86_64.AppImage: make it executable (chmod +x) and run it |
| macOS (Apple silicon) | curva-v0.4.0-macos-arm64.dmg: open it and drag Curva to Applications |
The builds are not signed with a developer certificate yet:
- Windows: SmartScreen may warn about an unknown app. Choose "More info", then "Run anyway".
- macOS: the first time, open System Settings → Privacy & Security and choose "Open Anyway".
From this version on, Curva checks for updates when it opens and offers them in the command bar.
New since 0.3.0
The interface
- The top bar is Curva: always there (focus mode hides it), with the file's name, File and
Settings, and the specializations as a dial: Freeform, Architecture, Publisher, Analysis. Only
Freeform has commands yet. - Commands, Display (the view's display mode) and Settings are panels like the others.
- Every panel has a cross to close it (it asks first, and Settings → Interface brings it back), a
V that points to the edge it hides to, and tabs you can drag to reorder. - Settings has tabs: General (theme, glass or solid, units, grid, updates), Interface (every panel
with a switch, and Reset interface), AI Assistant, and About. - The same type and colours on every panel; glass a quarter more see-through; Curva's name and
version at the bottom right; the window opens filling the screen. - Every command has an icon, and the Commands panel gains Analyze and Select tabs.
AI Assistant
- Chat with an assistant that works on your model, from its panel: a ChatGPT account (through
OpenAI's Codex), a local model through LM Studio, or an OpenAI or Claude API key. - Instructions to connect an external assistant (Claude Desktop, Claude Code) through MCP.
Modelling
- New: Sphere, Cylinder, Cone, TruncatedCone, Torus, Tube, Ellipsoid, Paraboloid, Polygon, Slot,
Helix, Spiral, Parabola, Points, Lines, Plane, SrfPt, ExtrudeSrf, ArrayLinear, Align, BooleanSplit,
DupEdge, ChangeDegree, Angle, Radius, EvaluatePt, What, AreaCentroid, VolumeCentroid, SelLine,
SelPolyline, SelCircle, SelArc, SelClosedCrv, SelOpenCrv, HideSwap, and SaveAs. - The gumball's circle extrudes curves and surfaces and stretches solids (Shift stretches anything,
Shift+Ctrl scales evenly); its scale square is gone. Every gumball action snaps. - Width × depth shows beside the pointer while drawing rectangles and boxes, and a typed size shows
there too. - Ctrl+C, Ctrl+X, Ctrl+V and Ctrl+A work on objects.
Fixed
- After clicking in a viewport, typing reaches the command line again, so options like Circle's
2Pointcan be typed; they can also be clicked. - Escape ends a command but keeps what it already placed (Copy's copies), and clears the selection when
nothing is running. - Ghosted views snap like Wireframe.
- Previews of heights no longer jump while the view turns.
- Curves and edges are drawn twice as thick.
- FilletEdge and ChamferEdge previews are no longer hidden by the original solid.
- Resizing a panel no longer selects things behind it, and a stray orange line on the top panel is
gone.
Known gaps
- No Rhino (.3dm) import or export yet.
- Many of Rhino's surface tools (Sweep2, NetworkSrf, EdgeSrf, Patch, BlendSrf, surface trimming) wait
on the geometry engine;docs/commands/rhino-parity.mdlists every command and its state. - In shaded views, curves hidden behind a solid's faces (such as a curve under the solid extruded from
it) cannot be snapped to; switch to Ghosted or Wireframe to reach them. - On Windows a console window opens beside Curva.
Licences
Curva is MIT OR Apache-2.0. Each package includes THIRD-PARTY-LICENSES.html, ATTRIBUTION.md, and the
notices in licenses/.
Curva 0.3.0 (preview)
Curva 0.3.0, preview. A new look, panels you can arrange freely, a gumball like Rhino's, and
commands that follow Rhino's steps and options. Still early: expect rough edges, and keep copies of
anything you care about.
Download
| System | File |
|---|---|
| Windows (64-bit) | curva-v0.3.0-windows-x64-setup.exe: an installer for your user only, with no administrator rights. Adds Curva to the Start menu, and can be removed from Settings → Apps |
| Linux (64-bit) | curva-v0.3.0-linux-x86_64.AppImage: make it executable (chmod +x) and run it |
| macOS (Apple silicon) | curva-v0.3.0-macos-arm64.dmg: open it and drag Curva to Applications |
The builds are not signed with a developer certificate yet:
- Windows: SmartScreen may warn about an unknown app. Choose "More info", then "Run anyway".
- macOS: the first time, macOS will refuse to open Curva. Open System Settings → Privacy & Security
and choose "Open Anyway" next to Curva.
New since 0.2.0
The look
- Light and dark themes in warm greys, following the system or chosen in Settings, with one accent
orange for selections, previews and focus. The interface is set in Inter. - Every panel is frosted glass, or solid if you prefer (Settings).
- A finer grid: a faint line every unit and a stronger one every 10.
- A File tab: New, Open, Save, Save As, Settings and About, with Ctrl+N, Ctrl+O, Ctrl+S and
Ctrl+Shift+S. - Command buttons show icons, with the name on hover.
- Models are in millimetres or metres (Settings); changing the unit asks whether to scale the model.
Panels
- Each panel shows its name along its top; drag the name to move it. A V hides it to a tab on its edge.
- Drop one panel on another to merge them as tabs; drag a tab out to make it a panel of its own.
- Floating panels settle on a grid, and every panel resizes from its edges and corners.
- A compact command bar centred at the bottom, and the agent connection in its own panel.
Picking, snapping and undo
- Click anywhere on a face to select its surface or solid.
- In shaded views, snap points hidden behind faces are no longer offered.
- Rest on a snap point for half a second to hold it: dashed guidelines then give snap points where
they cross each other and objects, and midway between held points. - Ctrl+Z, Ctrl+Y and Ctrl+Shift+Z work even while typing in the command line, and undo brings the
selection back too. UndoViewandRedoView(Home and End) step through each viewport's recent views.- Ctrl + right-drag zooms.
The gumball, like Rhino's
- Arrows to move, circles to extrude (curves into surfaces, flat surfaces into solids), quarter arcs to
turn, squares to scale along an axis (Shift scales evenly), plane squares to move in a plane, and the
centre to move freely. Drags snap and show their distance, angle or factor; click a handle without
dragging to type an exact value.
Commands
- The Curves, Operations, Surfaces and Solids tabs now follow Rhino's steps and options, for example
Circle2Point,3PointandDiameter, RectangleCenterand3Point, PolylineCloseand
Undo, OffsetThroughPointandBothSides, CopyInPlace, MirrorXAxisandYAxis, the
Booleans'DeleteInput, RevolveFullCircle, and PipeDiameter. - Solid previews show ghosted in orange while a command runs.
SaveAs.
Known gaps
- No Rhino (.3dm) import or export yet.
Capis not available: the geometry engine leaves capped solids hollow (reported upstream as
tangency-labs/solidcore#3266).- On Windows a console window opens beside Curva.
- Alt+Z may be taken by the NVIDIA overlay; Home and End do the same.
Licences
Curva is MIT OR Apache-2.0. Each package includes THIRD-PARTY-LICENSES.html for the libraries it is
built with, ATTRIBUTION.md, and the notices in licenses/.
Curva 0.2.0 (preview)
Curva 0.2.0, preview. Milestone 1 is complete, and the interface is new: floating panels over the
model, a frosted command bar, and a focus mode. Still early: expect rough edges, and keep copies of
anything you care about.
Download
| System | File |
|---|---|
| Windows (64-bit) | curva-v0.2.0-windows-x64-setup.exe: an installer for your user only, with no administrator rights. Adds Curva to the Start menu, and can be removed from Settings → Apps |
| Linux (64-bit) | curva-v0.2.0-linux-x86_64.AppImage: make it executable (chmod +x) and run it |
| macOS (Apple silicon) | curva-v0.2.0-macos-arm64.dmg: open it and drag Curva to Applications |
The builds are not signed with a developer certificate yet:
- Windows: SmartScreen may warn about an unknown app. Choose "More info", then "Run anyway".
- macOS: the first time, macOS will refuse to open Curva. Open System Settings → Privacy & Security
and choose "Open Anyway" next to Curva.
New since 0.1.1
The interface
- The viewports fill the window. The panels float over them with rounded corners:
- command tabs at the top (Curves, Surfaces, Solids, Operations), each with its most used commands
- Layers and Properties on the right
- a frosted-glass command bar at the bottom, with the snaps, Ortho, Grid snap and Gumball beside the
command line, and the agent (MCP) connection on the right
- Focus mode: the small arrow at the top centre, or F12, slides the panels to the window's edges.
Hover a panel's strip to peek, click it to bring that panel back, or start typing to bring the
command bar out. - Your own arrangement: drag a panel by the grip at its top-left to dock it to any edge, or let it
float. Floating panels resize from their corner. Right-click a grip for Reset layout. Curva
remembers your arrangement. - Curva has its icon: the C through three control points.
Modelling
Curve, the control-point curve, withDegreeandClose.ScaleNU: a different scale along each axis, for solids too.SelSrf,SelSolid, andVolume.- The selection filter:
SelFiltershows Points · Curves · Surfaces · Solids in the bottom bar, so
clicks and boxes pick only the kinds ticked;SelFilterToggleturns it off and on. - Ghosted display, beside Wireframe and Shaded: see-through faces with the edges behind them showing.
Files and safety
- Autosave: every 5 minutes, if the model changed, Curva keeps a recovery copy. After a crash it
offers the model back at the next start. .curvafiles are now zip packages, about 13 times smaller. Older files still open.- Saving writes beside the file and then replaces it, so a failed save never leaves a half-written file.
Known gaps
- No Rhino (.3dm) import or export yet.
Capis not available: the geometry engine leaves capped solids hollow (reported upstream as
tangency-labs/solidcore#3266).- A pipe along a rail with a sharp corner is refused; smooth rails work.
- On Windows a console window opens beside Curva.
Licences
Curva is MIT OR Apache-2.0. Each package includes THIRD-PARTY-LICENSES.html for the libraries it is
built with, ATTRIBUTION.md, and the notices in licenses/.
Curva 0.1.1 (preview)
Curva 0.1.1, preview. The same Curva as 0.1.0, now packaged the usual way for each system. It is
early and unpolished: expect missing commands, rough edges and file changes between versions.
Download
| System | File |
|---|---|
| Windows (64-bit) | curva-v0.1.1-windows-x64-setup.exe: an installer. It installs for your user only, with no administrator rights, adds Curva to the Start menu, and can be removed from Settings → Apps |
| Linux (64-bit) | curva-v0.1.1-linux-x86_64.AppImage: make it executable (chmod +x) and run it |
| macOS (Apple silicon) | curva-v0.1.1-macos-arm64.dmg: open it and drag Curva to Applications |
The builds are not signed with a developer certificate yet:
- Windows: SmartScreen may warn about an unknown app. Choose "More info", then "Run anyway".
- macOS: the first time, macOS will refuse to open Curva. Open System Settings → Privacy & Security
and choose "Open Anyway" next to Curva's entry.
What is in it
The window. Four viewports (Top, Front, Right, Perspective), wireframe and shaded display, a
command line with autocomplete and aliases as in Rhino, a gumball, layers and properties panels, object
snaps, ortho and grid snap, and custom construction planes (CPlane).
Curves. Line, Polyline, Circle, Arc, Rectangle, Ellipse and points. Join, Explode, Split, Trim,
Offset, Fillet, Chamfer, FilletCorners, TweenCurves, Rebuild, Divide, CloseCrv, Flip and Dir. Control
points: PointsOn (F10), InsertKnot, RemoveKnot, Smooth. History on Mirror and Offset.
Transforms. Move, Copy, Rotate, Rotate3D, Scale, Scale1D, Scale2D, Mirror, Orient, Orient3Pt,
Array, ArrayPolar and ArrayCrv, with live previews.
Surfaces and solids. Box, ExtrudeCrv, PlanarSrf, Revolve, Loft, Sweep1, Pipe and OffsetSrf.
BooleanUnion, BooleanDifference and BooleanIntersection. FilletEdge, ChamferEdge and Shell, picking
edges and faces in the viewport.
Selection, views and measuring. SelAll, SelCrv, SelPt, SelName, SelLayer, SelDup, SelLast and
others, Hide, Show and Isolate, Zoom and NamedView, Distance, Length, Area, BoundingBox, and volume
and area in the properties panel.
Files. Save and Open in Curva's own .curva format.
Agents. curva --mcp lets an AI agent read the scene, run commands and see a picture of a view,
in the open window, behind the Agent access checkbox and with your approval for destructive actions.
Known gaps
- No Rhino (.3dm) import or export yet, and no autosave.
Capis not available: the geometry engine leaves capped solids hollow (#67).- A pipe along a rail with a sharp corner is refused; smooth rails work.
- On Windows a console window opens beside Curva.
- The icon is a placeholder, and on Windows and macOS Curva uses the system's default app icon.
Licences
Curva is MIT OR Apache-2.0. Each package includes THIRD-PARTY-LICENSES.html for the libraries it is
built with, ATTRIBUTION.md, and the notices in licenses/: in the install folder on Windows, in
Curva.app/Contents/Resources on macOS, and in usr/share/doc/curva inside the AppImage.
Curva 0.1.0 (preview)
First preview of Curva. This build is meant to show where the project is. It is early and
unpolished: expect missing commands, rough edges and file changes between versions. Keep copies of
anything you care about.
Download
| System | File |
|---|---|
| Windows (64-bit) | curva-v0.1.0-windows-x64.zip: unzip and run curva.exe |
| Linux (64-bit) | curva-v0.1.0-linux-x64.tar.gz: unpack and run ./curva |
| macOS (Apple silicon) | curva-v0.1.0-macos-arm64.tar.gz: unpack, then right-click curva and choose Open |
The builds are not signed yet. Windows SmartScreen may warn about an unknown app ("More info", then
"Run anyway"), and macOS asks for confirmation the first time.
What is in it
The window. Four viewports (Top, Front, Right, Perspective), wireframe and shaded display, a
command line with autocomplete and aliases as in Rhino, a gumball, layers and properties panels, object
snaps, ortho and grid snap, and custom construction planes (CPlane).
Curves. Line, Polyline, Circle, Arc, Rectangle, Ellipse and points. Join, Explode, Split, Trim,
Offset, Fillet, Chamfer, FilletCorners, TweenCurves, Rebuild, Divide, CloseCrv, Flip and Dir. Control
points: PointsOn (F10), InsertKnot, RemoveKnot, Smooth. History on Mirror and Offset.
Transforms. Move, Copy, Rotate, Rotate3D, Scale, Scale1D, Scale2D, Mirror, Orient, Orient3Pt,
Array, ArrayPolar and ArrayCrv, with live previews.
Surfaces and solids. Box, ExtrudeCrv, PlanarSrf, Revolve, Loft, Sweep1, Pipe and OffsetSrf.
BooleanUnion, BooleanDifference and BooleanIntersection. FilletEdge, ChamferEdge and Shell, picking
edges and faces in the viewport.
Selection, views and measuring. SelAll, SelCrv, SelPt, SelName, SelLayer, SelDup, SelLast and
others, Hide, Show and Isolate, Zoom and NamedView, Distance, Length, Area, BoundingBox, and volume
and area in the properties panel.
Files. Save and Open in Curva's own .curva format.
Agents. curva --mcp lets an AI agent read the scene, run commands and see a picture of a view,
in the open window, behind the Agent access checkbox and with your approval for destructive actions.
Known gaps
- No Rhino (.3dm) import or export yet, and no autosave.
Capis not available: the geometry engine leaves capped solids hollow (#67).- A pipe along a rail with a sharp corner is refused; smooth rails work.
- On Windows a console window opens beside Curva.
Licences
Curva is MIT OR Apache-2.0. Each download includes THIRD-PARTY-LICENSES.html for the libraries
it is built with, ATTRIBUTION.md, and the notices in licenses/.