All Projects → jericks → geometrycommands

jericks / geometrycommands

Licence: MIT License
Commandline application for manipulating geometry.

Programming Languages

java
68154 projects - #9 most used programming language
Roff
2310 projects

Projects that are alternatives of or similar to geometrycommands

euclid.js
2D Euclidean geometry classes, utilities, and drawing tools
Stars: ✭ 69 (+187.5%)
Mutual labels:  geometry
pyprt
Python bindings for the "Procedural Runtime" (PRT) of CityEngine by Esri.
Stars: ✭ 36 (+50%)
Mutual labels:  geometry
AdaptiveDistanceFields.jl
Adaptively sampled distance fields in Julia
Stars: ✭ 22 (-8.33%)
Mutual labels:  geometry
BodyParts3D
Clone of the BodyParts3D/Anatomography 3D model files
Stars: ✭ 32 (+33.33%)
Mutual labels:  geometry
GeoJSON4EntityFramework
Create GeoJSON from Entity Framework Spatial Data or WKT
Stars: ✭ 18 (-25%)
Mutual labels:  geometry
geometer
A simple drawing program to replicate construction with a compass and straightedge
Stars: ✭ 19 (-20.83%)
Mutual labels:  geometry
Vector-Tile-Spark-Process
🌏 Clip geographic data into MVT files based on Apache Spark
Stars: ✭ 16 (-33.33%)
Mutual labels:  geometry
pypoman
Python module for polyhedral geometry
Stars: ✭ 26 (+8.33%)
Mutual labels:  geometry
MidcurveNN
Computation of Midcurve of Thin Polygons using Neural Networks
Stars: ✭ 19 (-20.83%)
Mutual labels:  geometry
CGAL.jl
CGAL meets Julia
Stars: ✭ 21 (-12.5%)
Mutual labels:  geometry
macuahuitl
The "Macuahuitl" Generative Art Toolbox
Stars: ✭ 68 (+183.33%)
Mutual labels:  geometry
delaunator-rs
Fast 2D Delaunay triangulation in Rust. A port of Delaunator.
Stars: ✭ 115 (+379.17%)
Mutual labels:  geometry
vos whatsapp
vangav open source - whatsapp; generated using vangav backend:
Stars: ✭ 14 (-41.67%)
Mutual labels:  geometry
featool-multiphysics
FEATool - "Physics Simulation Made Easy" (Fully Integrated FEA, FEniCS, OpenFOAM, SU2 Solver GUI & Multi-Physics Simulation Platform)
Stars: ✭ 190 (+691.67%)
Mutual labels:  geometry
utils.js
👷 🔧 zero dependencies vanilla JavaScript utils.
Stars: ✭ 14 (-41.67%)
Mutual labels:  geometry
curve-shortening-demo
Visualize curve shortening flow in your browser.
Stars: ✭ 19 (-20.83%)
Mutual labels:  geometry
SeeThere
iOS app for identifying a location through the camera.
Stars: ✭ 18 (-25%)
Mutual labels:  geometry
geoh
Transform a geoJSON into a list of geohashes that intersect with it
Stars: ✭ 26 (+8.33%)
Mutual labels:  geometry
rgeometry
Computational Geometry library written in Rust
Stars: ✭ 77 (+220.83%)
Mutual labels:  geometry
geometry sketcher
Constraint-based geometry sketcher for blender
Stars: ✭ 1,119 (+4562.5%)
Mutual labels:  geometry

Geometry command line library.

Geometry commands is a command line library for processing geometry that follows the unix philosophy. Each command does one thing well (buffer, centroid, envelope) by reading in a geometry, processing the geometry, and writing the geometry out as WKT. Individual commands can be connected with unix pipes. For more information please visit the web site.

Libraries

JTS:
https://locationtech.github.io/jts/
Proj4j:
http://trac.osgeo.org/proj4j/
Args4J:
http://args4j.kohsuke.org/

Examples:

Geometry input with -g argument:

>>> geom buffer -g "POINT (10 10)" -d 2

Geometry input using standard input stream:

>>> echo "POINT (10 10)" | geom buffer -d 20

Piping results of one geometry command to another:

>>> geom buffer -g "POINT (10 10)" -d 2 | geom envelope

Determine if one geometry contains another:

>>> echo "POINT (0 0)" | geom buffer -d 10 | geom contains -o "POINT (5 5)"
true
>>> echo "POINT (0 0)" | geom buffer -d 10 | geom contains -o "POINT (25 25)"
false

Buffer a point, get coordinates, draw coordinates to image, and open the image:

>>> echo "POINT (10 10)" | geom buffer -d 5 | geom coordinates | geom draw && open image.png

List available geometry commands:

>>> geom list
list
buffer
centroid
contains
convexHull
draw
difference
envelope
intersection

Getting Help

Each command contains a --help option:

>>> geom buffer --help
geom buffer: Buffer a geometry by a distance.
--help                    : Print help message
-c (--endCapStyle) VAL    : The end cap style (round, flat/butt, square)
-d (--distance) N         : The buffer distance
-g (--geometry) VAL       : The input geometry
-q (--quadrantSegments) N : The number of quadrant segments
-s (--singleSided)        : The flag for whether the buffer should be single sided

There is a man page for each subcommand:

>>> man geom-buffer
geom-buffer(1)                                                  geom-buffer(1)

NAME
       geom buffer

DESCRIPTION
       Buffer a geometry by a distance.

USAGE
       geom buffer -g "POINT (1 1)" -d 10

Finally, there is a bash completion script which makes using geom with bash much easier.

Install it in your .bash_profile:

source /Users/you/geom/shell/geom_bash_comp

Build

Geometry Commands depends on the Java Topology Suite (JTS) and Proj4j and uses Maven as a build tool.:

git checkout https://github.com/jericks/geometrycommands.git
cd /geometrycommands
mvn clean install

Build Native App

You can build a native app using Graalvm for MacOS or Linux. Download Graalvm and export a GRAALVM_HOME variable:

export GRAALVM_HOME=/Users/you/Applications/graalvm-ce-21.3.0/Contents/Home

Then you can run:

./mvnw clean install -DskipTests -Pnative

This will create a native geom executable.

Presentations

geometry commands

License

Geometry Commands is open source and licensed under the MIT License.

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].