All Projects → davreev → SpatialSlur

davreev / SpatialSlur

Licence: MIT license
Geometric data structures and algorithms for computational design tasks

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to SpatialSlur

mcut
A simple and fast library for mesh booleans and more.
Stars: ✭ 57 (-49.11%)
Mutual labels:  geometry-processing, mesh-processing
Cgal
The public CGAL repository, see the README below
Stars: ✭ 2,825 (+2422.32%)
Mutual labels:  geometry-processing, mesh-processing
Libigl Python Bindings
IGL python bindings
Stars: ✭ 95 (-15.18%)
Mutual labels:  geometry-processing
gp
🏭 Geometry Processing at LMU Munich
Stars: ✭ 21 (-81.25%)
Mutual labels:  geometry-processing
Manifoldplus
ManifoldPlus: A Robust and Scalable Watertight Manifold Surface Generation Method for Triangle Soups
Stars: ✭ 175 (+56.25%)
Mutual labels:  geometry-processing
Learning to sample
A learned sampling approach for point clouds (CVPR 2019)
Stars: ✭ 120 (+7.14%)
Mutual labels:  geometry-processing
Samplenet
Differentiable Point Cloud Sampling (CVPR 2020 Oral)
Stars: ✭ 212 (+89.29%)
Mutual labels:  geometry-processing
Lagrange
A Robust Geometry Processing Library
Stars: ✭ 87 (-22.32%)
Mutual labels:  geometry-processing
intersection-wasm
Mesh-Mesh and Triangle-Triangle Intersection tests based on the algorithm by Tomas Akenine-Möller
Stars: ✭ 17 (-84.82%)
Mutual labels:  mesh-processing
Dss
Differentiable Surface Splatting
Stars: ✭ 175 (+56.25%)
Mutual labels:  geometry-processing
Scaffold-Map
Robust, efficient and low distortion bijective mapping in 2D and 3D
Stars: ✭ 51 (-54.46%)
Mutual labels:  geometry-processing
Matgeom
Matlab geometry toolbox for 2D/3D geometric computing
Stars: ✭ 168 (+50%)
Mutual labels:  geometry-processing
Geometrize Haxe Web
🌐 Web demo using the Geometrize Haxe library to recreate images with geometric primitives
Stars: ✭ 122 (+8.93%)
Mutual labels:  geometry-processing
Melt
Automatic conservative mesh occluder generation by box filling
Stars: ✭ 105 (-6.25%)
Mutual labels:  geometry-processing
geometric adv
Geometric Adversarial Attacks and Defenses on 3D Point Clouds (3DV 2021)
Stars: ✭ 20 (-82.14%)
Mutual labels:  geometry-processing
Delfem2
Research prototyping framework for physics simulation written in C++
Stars: ✭ 92 (-17.86%)
Mutual labels:  geometry-processing
Optcuts
OptCuts, a new parameterization algorithm, jointly optimizes arbitrary embeddings for seam quality and distortion. OptCuts requires no parameter tuning; automatically generating mappings that minimize seam-lengths while satisfying user-requested distortion bounds.
Stars: ✭ 145 (+29.46%)
Mutual labels:  geometry-processing
Geometry Processing
Course material for a grad-level course in Geometry Processing.
Stars: ✭ 176 (+57.14%)
Mutual labels:  geometry-processing
polyred
📺 3D Graphics in Go.
Stars: ✭ 31 (-72.32%)
Mutual labels:  geometry-processing
Point2Mesh
Meshing Point Clouds with Predicted Intrinsic-Extrinsic Ratio Guidance (ECCV2020)
Stars: ✭ 61 (-45.54%)
Mutual labels:  mesh-processing

Spatial Slur

Spatial Slur is an open source library of geometric data structures and algorithms intended to facilitate the development of novel computational design methods. It is written in C# and compiled against .NET 4.6.

Header

Overview

Below is a brief outline of the library by namespace. For further detail, take a look at the latest reference documentation or just dive into the source files and poke around. If you have any questions, comments, or suggestions, feel free to get in touch.

  • SpatialSlur
    • Primitive data types and algorithms for geometry processing in 2 and 3 dimensions
  • SpatialSlur.Collections
    • Generic data structures for spatial queries and related algorithms
    • Extension methods for .NET collection types
  • SpatialSlur.Dynamics
    • Position-based constraint solver and various constraint types for shape exploration and optimization
  • SpatialSlur.Fields
    • Generic data structures for discrete and continuous field representations (scalar, vector etc.)
    • Algorithms for image/signal processing and visualization
  • SpatialSlur.Meshes
    • Generic half-edge data structures for discrete representations of networks, surfaces, and (eventually) volumes
    • Algorithms for mesh/graph processing and visualization
  • SpatialSlur.Tools
    • Tools and applications that utilize functionality offered by the rest of library

The following additional namespaces contain classes and convenience methods for interfacing with external APIs.

  • SpatialSlur.Rhino
  • SpatialSlur.Unity

Setup

To get started, download the precompiled binaries from the latest release. If on Windows, the downloaded files may be blocked by default so follow these instructions to make sure they're unblocked before referencing them within your own project(s).

Grasshopper

To use within Grasshopper, start by moving the contents of the Binaries > Rhino folder to your Grasshopper components folder (File > Special Folders > Components Folder).

Once done, restart Rhino, launch Grasshopper, and drop a C#/VB Script component on the canvas. Right click on the component icon/name, and go to Manage Assemblies. Add SpatialSlur.dll from your Grasshopper components folder to the list of referenced assemblies and click OK to confirm. SpatialSlur types will now be accessible from code written within this component.

Unity

Before using within Unity, the editor must to be configured to target .NET 4.6 (available in Unity 2017.1 or later). To do so, go to Edit > Project Settings > Player and expand the Other Settings dropdown. Under Configruation, set the Scripting Runtime Version to Experimental (.Net 4.6 Equivalent).

Once this has been set, import SpatialSlur.unitypackage into your current project (Assets > Import Package > Custom Package...). SpatialSlur types will now be accessible from any C# script in this project.

Building From Source

If you're interested in keeping up with the latest developments between releases, you'll need to make a clone and compile the binaries on your own machine. The following goes over a few important build-related details to be aware of while doing so.

IDE

While all projects in the solution currently target .NET 4.6, they do make use of some backwards compatible C# 7 features so you'll likely run into problems with older IDEs. For Windows users, Visual Studio 2017 or later is recommended.

Configurations

The solution file contains different build configurations for different use cases - each of which has a unique set of dependencies as detailed below.

Default has no dependencies beyond the .NET Framework

Rhino has the following additional dependencies:

  • RhinoCommon.dll
  • Grasshopper.dll
  • GH_IO.dll

Unity has the following additional dependencies:

  • UnityEngine.dll
  • UnityEditor.dll

Reference Documentation

See below for links to reference documentation by version number.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].