coshape
v0.1.15
Published
build system for web and mobile 3D product customizers and configurators.
Downloads
36
Maintainers
Readme
Coshape CLI Tool
An experimental toolkit to create web based 3D designs, convert and visualize CAD data and access the coshape CAD web services for Maker projects. Checkout coshape.io for the tutorial and examples.
Features
- create customizable 3D modeling frontends
- define assemblies of parametrized 3D models in YAML based project file
- integrated SCAD (OpenJscad), STL and SVG for 3D printers and Laser cutters
- create and manage customizable projects
- live server and static build
- share your customizer projects with others using IPFS (InterPlanetary File System)
Change log
2021-09-06 Integrated support for the decentralized IPFS to share customizer projects or CAD files peer to peer
2021-03-05 Implemented cascading project inclusion, (cf. example boxed model rocket)
2021-01-03 Added indication of model size to the 3D view
2020-12-13 Added clone function and updated Quadrocopter example to use it.
- 2020-11-11 Updated GUI to allow for simple TRS and parameter changes per component (cf. screenshot)
Global Installation
Install the toolkit globally for easy access. Note that this will usually require root permission (sudo).
$ npm install coshape -g
The toolkit is now available in the terminal as coshape command.
$ coshape
Local Installation
The toolkit can also be installed without root permissions.
To install the toolkit locally, create a new directory e.g. 'coshape-tools' and run npm.
$ npm install coshape
Access the toolkit from the current working directory like this.
$ ./node_modules/coshape/bin/coshape.js
Source Code
The source code is on GitHub and can be checked out like this.
$ git clone https://github.com/coshape/coshape-cli.git/
Change into the project directory, install the dependencies with npm and the toolkit is ready to be used.
$ npm install
Access the toolkit from the current working directory like this.
$ ./node_modules/coshape/bin/coshape.js
Quick Start
Create a new workspace to manage several projects
Create a new directory for your customizer projects. Change into the new directory and initialize the workspace.
$ coshape init
Create a new project
Creates a new project folder and fills it with a dummy customizer for testing.
$ coshape new my-awesome-project
$ cd my-awesome-project
test your projects in a live server
Change into the customizer project folder or into a workspace and start the live server.
$ coshape run
Open a browser and go to the following url.
http://localhost:3000
Edit the customizer source code files and the server will automatically update the web application and reload the browser window.
Have a look into our Tutorial
Examples
Download or checkout the examples, change the directory into the examples directory or project directory, run the live server and start hacking with your favorite IDE.
Generate static files
$ coshape build
Share your projects with others
To share your parameteric CAD models with others, e.g. for collaboration without relying on a central server it is possible to share your project folder with others via IPFS (InterPlanetary File System). Change the directory into the project you like to share and use the command 'share'.
cd <project_folder>
$ coshape share
...
coshape info sharing on IPFS @ /ipfs/QmWvhaGtJeQdMHFXrko9Yo8LHyVZRUMPYC6mRGeD8qrRn5
The application will walk through the project's file structure and start hosting the files as an IPFS node. The last line prints out the IPFS CID (content identifier) which can be used by your peers to access the shared project folder. Don't terminiate the application until all your peers finished to clone your project folder.
Note: every change of files results in a change of the CID and has to be shared anew with your collaborators.
Clone a shared project
To clone a shared project folder use the command 'clone' followed by the CID (content identifier) of the shared project.
$ coshape clone QmWvhaGtJeQdMHFXrko9Yo8LHyVZRUMPYC6mRGeD8qrRn5
Note: file changes have to be merged manually.
Have fun!
License
MIT