From measurements to printable results

Technology behind Lunar Prototypes

Lunar Prototypes connects parametric CAD to a browser-based customization workflow. Each part of the system has a practical role: defining adjustable geometry, collecting measurements, generating a model, and keeping the service available.

The project uses a mixture of open-source software, commercial design tools, and hosted services. Open tools provide much of the foundation, supported by documentation and communities that make them easier to understand, maintain, and build upon.

Models and public interface

Designing the model and the experience

Parametric source models define what can change, while the public website gives people a straightforward way to find designs and provide useful measurements.

  • Autodesk Fusion 360

    Creates and maintains parametric source models built around dimensions and geometric relationships. These models provide the foundation for measurement-based customization.

  • Bootstrap 5

    Provides the responsive layout, interface components, and utility classes used throughout the public website.

  • Bootstrap Studio

    Maintains the visual website source, page layouts, and shared linked components used to produce the public static site.

Application workflow

Handling requests and data

The application layer validates user input, coordinates customization requests, manages the data needed by the workflow, and provides account access.

  • Python

    Provides the primary application and automation language used to validate requests and coordinate model generation.

  • Flask

    Supplies the web application framework behind the customization workflow and related application services.

  • Gunicorn

    Runs the Python web application processes that respond to application requests.

  • PostgreSQL

    Stores durable application data required by the website and customization workflow.

  • Redis

    Supports short-lived application state and coordination where fast access is useful.

  • Keycloak

    Provides account sign-in and identity management for authenticated parts of the website.

Delivery and maintenance

Keeping the service available

A collection of established infrastructure and automation tools supports consistent operation, repeatable changes, and ongoing maintenance.

  • Docker

    Packages application components consistently across development and production environments.

  • NGINX

    Serves public web content and directs requests to the appropriate application components.

  • Debian

    Provides a stable Linux foundation for much of the supporting environment.

  • AWS

    Provides hosting resources for the public-facing production service.

  • Jenkins

    Automates repeatable validation, build, release, and deployment workflows.

  • GitHub

    Tracks project history and supports reviewable source-control and documentation workflows.

Explore the public documentation

The Lunar Prototypes GitHub organization contains public repositories and project documentation. The public documentation repository provides an overview of the conceptual architecture, parametric customization workflow, and design philosophy behind Lunar Prototypes.