Parametrix's logo

Parametrix

Parametrix's logo Parametrix's logo Parametrix's logo Parametrix's logo
Technical drawing --- Dessin industriel --- 2D parametric designs --- Software defined modelling

Parametrix concepts

Parametrix presentation

Parametrix is programmatic CAD tool. It provides an API (called geometrix) for modelling 2D shapes and 3D shapes. When you are done with your desing, Parametrix generates a web-UI for exposing your design.

Features

  1. Modern interface between designers and makers
  2. Automatic generation of CLI and UI
  3. Extendable for simulation (e.g. optics simulator) and design workbench (e.g. sheet metal)
  4. Optimized for G-code and common manufacturing process
  5. Built on top of several CAD tools (act also as unified API for the suported CAD tools)
  6. Simple deployment via npm
  7. Online and offline access
  8. Well integrated in git workflow (e.g. heliostat_model_50cm)
  9. Simple and powerful API for modelling including corner rounding feature
  10. The full power of Javacript for modelling your shapes
  11. Streamline core library of only 6000 lines of code easy to maintain

CAD Flow

Traditional CAD Flow

cad_flow_traditional.svg

When you design your 3D-shape within a CAD tool, your work-product depends on this tool. If this tool becomes unavailable because technical, legal or commercial raison, you lose your work.

CAD Flow with Parametrix

cad_flow_with_parametrix.svg

The 3 main advantages of the parametrix flow:

  • Parametrix helps keeping your work persistent because it is agnostic to any CAD solution. Your 3D-shape is described in Javascript with a dependency on the small library geometrix.
  • The intermediate step of webui gives more autonomy to the maker. He can adjust sizings of the design himself without asking the designer.
  • Having the 3D-shape described in Javascript helps providing high quality 3D-data and let you benefit from all the software developer tools including git for versioning and sharing.

Parametrix workflow

parametrix_workflow.svg

Designers and makers

designer_maker_interfaces.svg

Parametrix scope

parametrix_3D_shape_subset.svg

More explanations

The user of Parametrix gets:

  • 2D
  • web app
  • programmatic
  • parametrizable
  • simulation included

The programmer of Parametrix design (a.k.a. Designix) gets an API with:

  • circle, stroke and arc
  • corner widening or rounding
  • export to DXF, SVG
  • compatible with FreeCAD
  • lines and arcs ready for CAM tools ;)

corner_options.svg

The API provides options for rounding or widening corners of outlines. It’s useful for:

  • good looking parts
  • manufacturabilty
  • improve mechanical strength

Programmatic CAD

Instead of using graphical tools like FreeCAD, Programmatic CAD is the process of generating CAD designs from software code. Below some benefits of this approach:

  • designs managed by software development tools like git
  • lightweight. Typically you need a text-editor and a small viewer
  • complex parametrization are better solved by software
  • repeated pattern are easier to implement and maintained
  • curve from complex mathematical formula
  • can be integrated in web-backend or software automation chain

CAD flow comparsion

comparison_of_cad_flows.svg

Low-tech CAD pros:

  • less computer demanding
  • scalability of established designs cons:
  • restricted to subset of 3D shapes
  • complex 2D programmatic design

low_tech_path.svg

high_tech_path.svg

The constraints of part manufacturing and low-tech CAD shaping concept are similar. As consequences:

  • low-tech CAD is good enough for mechanical parts
  • too restrictive for esthetic/design parts

Extruded-2D-design is good enough for 90% of technical parts

gui_vs_programmatic.svg

Parametrix versus traditional CAD tools

Pros of Parametrix

  • Use standard software toold and flow
  • branch and history provided by git
  • very accurate modification tracking
  • design-input via text-editor
  • design shared through url/web-page
  • extensive parametrization eases design re-use
  • explicit list of parameters
  • possibility to implement complex logic
  • 2D drawings are free
  • run in the browser (lightweight)
  • can be scripted

Cons of Parametrix

  • No straight method for managing assembly
  • No export with dimensions
  • 2D drawings are free and can contains bugs
  • no direct 3D rendering

Shape description

geometry_descriptive.svg

In Parametrix, a 2D-figure is a collection of 2D-contours. A 2D-contour is a close-path made out of a straight strokes and arcs of circle. A 2D-contour might describe the outer shape or inner holes of the final part. Each 2D-figure describes the final part from a specific direction according to the technical drawing methodology. The 3D-shape is the recipe of how to extrude the 2D-figures and how to combine (boolean operations: union, intersection, substration) them to create the final part.

shape_description_tree.svg

In Parametrix, a design is a 3D-shape. This 3D-shape is defined by a recipe and a collection of 2D-figures. Each 2D-figure consists of the following layers: main, second, dynamics, points, lines and vectors. Only the layer main is used in the final 3D-shape. The other layers are only helpers for debugging and simulation. The layers main, second and dynamics are collections of Contours. A Contour can be either a circle or a close-path. A close-path is made out of straight strokes and arcs-of-circle.

Future tools around Parametrix

parametrix_galaxi.svg

Web app

software_stack.svg

web app characteristics

  • [+] security
  • [+] ubiquity
  • [+] no installation
  • [+] OS agnostic
  • [+] browser agnostic (web standards)
  • [-] no file access
  • [+] could be installed locally for offline usage
  • [+] fast development of GUI
  • [-] restricted to web protocols
  • [-] restricted hardware access

native app characteristics

  • [+] performance
  • [+] multi-threading
  • [+] many programming languages
  • [+] compiled or interpreted
  • [+] run with internet-off
  • [-] OS dependent
  • [-] complex development of GUI
  • [+] any network protocol
  • [+] access to hardware

javascript_timeline.svg

In 2023 the eco-system for developing web-apps is mature.

  • nodejs V18 is the first LTS with official support for ESM.
  • SvelteKit is the first frontend framework that support ESM.

Development

actors

users_around_parametrix.svg

repos and packages overview

repos_and_packages.svg

npm-packages of parametrix

  • geometrix
  • designix
  • geomui
  • geomcli
  • designix-cli
  • designix-ui
  • designix-uis
  • paramui
  • designix-script-js
  • designix-script-ts

npm-packages of create-parametrix

  • create-parametrix

Generalization of the design-webapp concept

The concept of Parametrix for generating webapp can be extended to other disciplines like:

  • electronic
  • digital-design/FPGA-design
  • simple-software state-machine
  • music

concept_of_webapp_generator.svg

For each of those domains, an author creates designs in javascript. From there the framework generates a webapp. Finally the end-user parametrises a design and gets his customized instance of the design.

helper_apps_for_design_webapp.svg

The authors generate many independant webapp for exposing there designs. 3 helper-apps could complete the offer:

  • A search-engine for selecting/finding the wished design
  • A visualizer for displaying a parametrized design
  • An assembler for managing the parameters and the combination of several designs

distribution_of_design_apps.svg

A javascript design library can be distributed in several ways:

  • as a website publised on internet
  • as a local website, distributed via npm-packages
  • as a local command-line-interface, distributed via npm-packages
  • as npm-package being imported in other javascripts