solidtype  by samwillis

Parametric CAD with real-time collaboration and AI assistance

Created 4 months ago
287 stars

Top 91.3% on SourcePulse

GitHubView on GitHub
Project Summary

This project presents SolidType, a sophisticated, history-capable, parametric CAD application built on a modern local-first architecture. It serves as a comprehensive demonstration of advanced synchronization technologies like Electric SQL for real-time structured data and Durable Streams with Yjs for CRDT-based document persistence, targeting developers building production-ready collaborative applications. The core benefit lies in its robust, real-time, and conflict-free collaborative editing capabilities, enhanced by AI-assisted modeling.

How It Works

SolidType employs a multi-sync strategy: structured metadata (workspaces, projects, documents) is managed via Electric SQL, leveraging PostgreSQL logical replication for real-time bidirectional synchronization to a client-side TanStack DB. Unstructured, collaborative CAD document content is handled by Yjs CRDTs persisted through Durable Streams, enabling conflict-free merging and real-time presence. AI-assisted modeling is integrated via TanStack AI, utilizing Anthropic Claude and a SharedWorker-based Agent Runtime for coordinated tool execution and local kernel operations using OpenCascade.js (OCCT).

Quick Start & Requirements

  • Primary install/run command:
    1. git clone <repository-url>
    2. cd solidtype
    3. pnpm install
    4. docker-compose up -d (to start PostgreSQL, Electric SQL, Durable Streams)
    5. cd packages/app && pnpm db:push (to set up database schema)
    6. cd packages/app && pnpm dev (to run the application)
  • Non-default prerequisites: Node.js >= 18.0.0, pnpm >= 8.0.0, Docker and Docker Compose, PostgreSQL 14+ (optional if using Docker).
  • Links: No direct links to quick-start guides or demos are provided within the README text.

Highlighted Details

  • Parametric 3D modeling powered by OpenCascade.js (OCCT) for B-Rep operations.
  • Real-time collaboration for both structured metadata and CRDT-based document content.
  • AI-assisted modeling through chat-based tool calling, with tools organized by context (Dashboard, Sketch, Modeling).
  • Demonstrates three distinct data synchronization patterns: Structured Metadata (Electric SQL), Unstructured Document Content (Durable Streams + Yjs), and AI Chat Sessions (Hybrid).

Maintenance & Community

No specific details regarding notable contributors, sponsorships, partnerships, or community channels (like Discord/Slack) are present in the provided README text.

Licensing & Compatibility

  • License type: MIT.
  • Compatibility notes: The MIT license is highly permissive, generally allowing for commercial use and integration into closed-source projects without significant restrictions.

Limitations & Caveats

The project is presented as a demonstration and production example, with some runtime options (EdgeAgentRuntime, DOAgentRuntime) marked as future work. For development, an HTTP/2 reverse proxy like Caddy is recommended to mitigate potential issues with Electric SQL sync due to Vite's HTTP/1.1 limitations. The setup involves multiple Docker services and database configurations, presenting a moderate initial hurdle for new users.

Health Check
Last Commit

2 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
62 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.