CurvedPCB is a Windows application for creating PCB designs with curved connections. The project consists of multiple components working together to provide a complete solution for PCB design with curved routing capabilities.
The solution contains the following main projects:
- CurvePCB - Main WPF desktop application that serves as the primary user interface
- CurvePCB.Lib - Core library containing shared logic, data models and utilities
- CurvePCB.Test - Unit tests for the core functionality
- CurvePCB.Ui - User interface components
- CurvePCB.Maui - .NET MAUI mobile application (cross-platform)
- CurvePCB.Avalonia.UI - Avalonia-based cross-platform UI implementation
- PathfindingWithBezier - Pathfinding algorithms with Bezier curve support
- Windows 10 or higher (Windows 7.0 target framework)
- .NET 8.0 SDK or later
- Visual Studio 2022 or later (recommended)
- Windows 10 or higher
- Visual Studio 2022 with .NET desktop development workload
- .NET 8.0 SDK
- WPF and Avalonia UI development tools
- For cross-platform support:
- .NET MAUI development tools (Visual Studio 2022 with .NET MAUI workload)
- Avalonia UI development tools
- Install .NET 8.0 SDK from Microsoft's official website
- Install Visual Studio 2022 with .NET desktop development workload
- Ensure all required NuGet packages are restored (automatically handled by Visual Studio)
- Open
CurvePCB.slnin Visual Studio - Restore NuGet packages if needed:
dotnet restore - Build the solution:
dotnet build
To build a release version:
dotnet build -c Release
- Open
CurvePCB.slnin Visual Studio - Set the startup project to
CurvePCB - Press F5 or click "Start Debugging" to run the application
- Navigate to the main directory:
cd CurvePCB - Run the application directly:
dotnet run --project CurvePCB\CurvePCB.csproj
- Svg 3.4.4 - SVG rendering support
- Microsoft.NET.Sdk - .NET SDK for building applications
- CurvePCB.Lib - Shared logic and data models
- PathfindingWithBezier - Bezier curve pathfinding algorithms
This project aims to create PCB designs with curved connections, inspired by:
- Traditional PCB design tools
- KiCAD and other open-source PCB design software
- Bezier curve pathfinding algorithms for optimal routing
- Curved connection visualization and manipulation
The main goal is to demonstrate how curved paths can be used in PCB design to potentially improve signal integrity or reduce electromagnetic interference.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests to ensure nothing is broken
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by KiCAD and PCB design tools
- Bezier curve pathfinding algorithms
- WPF and Avalonia UI frameworks

