# nkallen/plasticity

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nkallen-plasticity).**

3,312 stars · 247 forks · TypeScript · other

## Links

- GitHub: https://github.com/nkallen/plasticity
- awesome-repositories: https://awesome-repositories.com/repository/nkallen-plasticity.md

## Description

Plasticity is a computer-aided design environment and vector-based geometry editor. It functions as a NURBS-based 3D modeling tool for constructing complex geometric shapes and spatial layouts using parametric control.

The software includes an adaptive user interface layout engine that automatically rearranges and resizes elements based on screen dimensions. It provides a system for refining 3D model geometry through the manipulation of individual curve control points and surfaces.

The platform incorporates spatial querying capabilities, utilizing raycasting and boxcasting to detect intersections and collisions between objects. It also manages scene visibility and visual properties through node opacity and visibility controls.

## Tags

### Graphics & Multimedia

- [Computer-Aided Design Environments](https://awesome-repositories.com/f/graphics-multimedia/computer-aided-design-environments.md) — Provides a complete computer-aided design environment for constructing complex geometric shapes with parametric control.
- [3D Geometry Editing](https://awesome-repositories.com/f/graphics-multimedia/3d-geometry-editing.md) — Allows refining 3D model shapes by manipulating curve points and adjusting object geometry for precise visual design.
- [Control Point Manipulation](https://awesome-repositories.com/f/graphics-multimedia/bezier-curve-interpolations/control-point-manipulation.md) — Provides direct editing of geometric shapes by transforming the coordinates and handles of individual curve control points.
- [Control Point Manipulation](https://awesome-repositories.com/f/graphics-multimedia/bezier-curve-interpolations/curve-fitting/control-point-manipulation.md) — Provides tools to move, rotate, scale, or delete individual points on a curve to refine its geometry. ([source](https://github.com/nkallen/plasticity/blob/master/CHANGELOG.md))
- [NURBS Modeling](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/3d-modeling-software/nurbs-modeling.md) — Functions as a NURBS-based 3D modeling tool for creating precise models with smooth surfaces.
- [Vector Geometry Editors](https://awesome-repositories.com/f/graphics-multimedia/vector-geometry-editors.md) — Provides a vector-based geometry editor for manipulating curve points and surface geometry through precise mathematical transformations.

### Game Development

- [3D Collision Detection Frameworks](https://awesome-repositories.com/f/game-development/physics-engines/collision-detection/3d-collision-detection-frameworks.md) — Implements a computational framework for calculating geometric intersections between 3D objects using boxcasting.
- [Spatial Querying Systems](https://awesome-repositories.com/f/game-development/physics-engines/collision-detection/spatial-querying-systems.md) — Implements spatial querying systems using raycasting and boxcasting to identify specific scene elements. ([source](https://github.com/nkallen/plasticity/blob/master/TODO.md))

### Scientific & Mathematical Computing

- [Dimensional Collision Detection](https://awesome-repositories.com/f/scientific-mathematical-computing/multi-dimensional-arrays/dimensional-collision-detection.md) — Implements algorithmic detection of intersections between 3D objects using raycasting and boxcasting.

### User Interface & Experience

- [Raycasting and Collision Selection](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/general-interaction-frameworks/interaction-libraries/physics-based-interactions/direct-object-manipulation/raycasting-and-collision-selection.md) — Provides raycasting-based systems to detect intersections and select specific objects within a 3D scene.
- [Adaptive UI Layouts](https://awesome-repositories.com/f/user-interface-experience/responsive-layout-adapters/adaptive-ui-layouts.md) — Ships an interface system that automatically adapts element positions and sizes based on screen dimensions.
