# snapmaker-luban

> A web-based interface for Snapmaker 3-in-1 3D Printer

Latest version **3.6.0** (published 2020-07-07) · AGPL-3.0-or-later license · 0 weekly downloads

## Install

```sh
npm install snapmaker-luban
pnpm add snapmaker-luban
yarn add snapmaker-luban
bun add snapmaker-luban
```

Provides the command `luban`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; large bundle.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.6.0 |
| Published | 2020-07-07 |
| First published | 2020-07-03 |
| Weekly downloads | 0 |
| License | AGPL-3.0-or-later |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=4 |
| Dependencies | 125 |
| Unpacked size | 39.9 MB |
| Known vulnerabilities | 0 (+32 in 18 direct dependencies) |
| Install scripts | no |
| GitHub stars | 510 |
| Author | Snapmaker Dev Team |
| Maintainers | janetao |
| Keywords | Snapmaker, Luban, 3D Printing, Laser, CNC, G-code, Marlin |

## Links

- npm: https://www.npmjs.com/package/snapmaker-luban
- Repository: https://github.com/whimsycwd/Snapmakerjs
- Issues: https://github.com/whimsycwd/Snapmakerjs/issues
- npm.io page: https://npm.io/package/snapmaker-luban

## Dependencies (125)

- [mv](https://npm.io/package/mv.md) ~2.1.1
- [qs](https://npm.io/package/qs.md) ~6.5.2
- [jimp](https://npm.io/package/jimp.md) ~0.2.28
- [sha1](https://npm.io/package/sha1.md) ~1.1.1
- [uuid](https://npm.io/package/uuid.md) ~3.3.2
- [async](https://npm.io/package/async.md) ~2.5.0
- [chalk](https://npm.io/package/chalk.md) ~2.4.1
- [debug](https://npm.io/package/debug.md) ~3.1.0
- [jsuri](https://npm.io/package/jsuri.md) ~1.3.1
- [react](https://npm.io/package/react.md) ~16.13.0
- [redux](https://npm.io/package/redux.md) ~4.0.1
- [three](https://npm.io/package/three.md) ~0.94.0
- [watch](https://npm.io/package/watch.md) ~1.0.2
- [xterm](https://npm.io/package/xterm.md) ^4.0.0
- [jquery](https://npm.io/package/jquery.md) ~3.5.0
- [lodash](https://npm.io/package/lodash.md) ~4.17.10
- [mkdirp](https://npm.io/package/mkdirp.md) ~0.5.1
- [moment](https://npm.io/package/moment.md) ~2.24.0
- [morgan](https://npm.io/package/morgan.md) ~1.9.0
- [semver](https://npm.io/package/semver.md) ~5.6.0
- [xml2js](https://npm.io/package/xml2js.md) ~0.4.19
- [core-js](https://npm.io/package/core-js.md) ~3.6.5
- [esprima](https://npm.io/package/esprima.md) ~4.0.1
- [express](https://npm.io/package/express.md) ~4.16.3
- [history](https://npm.io/package/history.md) ~4.6.3
- [i18next](https://npm.io/package/i18next.md) ~11.4.0
- [keycode](https://npm.io/package/keycode.md) ~2.2.0
- [potrace](https://npm.io/package/potrace.md) ~2.1.1
- [shortid](https://npm.io/package/shortid.md) ~2.2.12
- [winston](https://npm.io/package/winston.md) ~3.0.0
- [es5-shim](https://npm.io/package/es5-shim.md) ~4.5.9
- [hogan.js](https://npm.io/package/hogan.js.md) ~3.0.2
- [react-ga](https://npm.io/package/react-ga.md) ~2.5.7
- [bootstrap](https://npm.io/package/bootstrap.md) ~4.4.1
- [cli-color](https://npm.io/package/cli-color.md) ~1.4.0
- [commander](https://npm.io/package/commander.md) ~2.16.0
- [expr-eval](https://npm.io/package/expr-eval.md) ~1.2.2
- [minimatch](https://npm.io/package/minimatch.md) ~3.0.4
- [mousetrap](https://npm.io/package/mousetrap.md) ~1.6.2
- [popper.js](https://npm.io/package/popper.js.md) ~1.16.1
- [pubsub-js](https://npm.io/package/pubsub-js.md) ~1.5.7
- [rc-slider](https://npm.io/package/rc-slider.md) ~8.6.7
- [react-dom](https://npm.io/package/react-dom.md) ~16.8.0
- [socket.io](https://npm.io/package/socket.io.md) ~2.2.0
- [classnames](https://npm.io/package/classnames.md) ~2.2.6
- [colornames](https://npm.io/package/colornames.md) ~1.1.1
- [file-saver](https://npm.io/package/file-saver.md) ~1.3.8
- [parse-json](https://npm.io/package/parse-json.md) ~2.2.0
- [prop-types](https://npm.io/package/prop-types.md) ~15.6.2
- [regression](https://npm.io/package/regression.md) ^2.0.1
- [serialport](https://npm.io/package/serialport.md) ~8.0.7
- [sortablejs](https://npm.io/package/sortablejs.md) ~1.7.0
- [source-map](https://npm.io/package/source-map.md) ~0.7.3
- [superagent](https://npm.io/package/superagent.md) ~3.8.3
- [body-parser](https://npm.io/package/body-parser.md) ~1.18.3
- [compression](https://npm.io/package/compression.md) ~1.7.3
- [consolidate](https://npm.io/package/consolidate.md) ~0.15.1
- [express-jwt](https://npm.io/package/express-jwt.md) ~5.3.1
- [is-electron](https://npm.io/package/is-electron.md) ~2.1.0
- [opentype.js](https://npm.io/package/opentype.js.md) ~0.9.0
- [range_check](https://npm.io/package/range_check.md) ~1.4.0
- [react-redux](https://npm.io/package/react-redux.md) ~5.0.7
- [redux-thunk](https://npm.io/package/redux-thunk.md) ~2.3.0
- [static-eval](https://npm.io/package/static-eval.md) ~2.0.5
- [ensure-array](https://npm.io/package/ensure-array.md) ~1.0.0
- [errorhandler](https://npm.io/package/errorhandler.md) ~1.5.0
- [font-awesome](https://npm.io/package/font-awesome.md) ~4.7.0
- [js-polyfills](https://npm.io/package/js-polyfills.md) ~0.1.42
- [jsonwebtoken](https://npm.io/package/jsonwebtoken.md) ~8.3.0
- [react-router](https://npm.io/package/react-router.md) ~4.3.1
- [react-select](https://npm.io/package/react-select.md) ~1.3.0
- [react-toggle](https://npm.io/package/react-toggle.md) ~4.0.1
- [socketio-jwt](https://npm.io/package/socketio-jwt.md) ~4.5.0
- [webappengine](https://npm.io/package/webappengine.md) ~1.2.0
- [bcrypt-nodejs](https://npm.io/package/bcrypt-nodejs.md) 0.0.3
- [clusterize.js](https://npm.io/package/clusterize.js.md) ~0.17.6
- [color-convert](https://npm.io/package/color-convert.md) ~2.0.0
- [cookie-parser](https://npm.io/package/cookie-parser.md) ~1.4.3
- [infinite-tree](https://npm.io/package/infinite-tree.md) ~1.16.2
- [normalize.css](https://npm.io/package/normalize.css.md) ~7.0.0
- [serve-favicon](https://npm.io/package/serve-favicon.md) ~2.5.0
- [@babel/runtime](https://npm.io/package/@babel/runtime.md) ~7.9.2
- [detect-browser](https://npm.io/package/detect-browser.md) ~3.0.0
- [electron-store](https://npm.io/package/electron-store.md) ~5.1.1
- [polygon-offset](https://npm.io/package/polygon-offset.md) ~0.3.1
- [react-dropzone](https://npm.io/package/react-dropzone.md) ~4.2.13
- [superagent-use](https://npm.io/package/superagent-use.md) ~0.1.0
- [express-session](https://npm.io/package/express-session.md) ~1.15.6
- [method-override](https://npm.io/package/method-override.md) ~3.0.0
- [react-bootstrap](https://npm.io/package/react-bootstrap.md) ~1.0.0
- [react-contexify](https://npm.io/package/react-contexify.md) ~4.1.0
- [xterm-addon-fit](https://npm.io/package/xterm-addon-fit.md) ^0.3.0
- [chained-function](https://npm.io/package/chained-function.md) ~0.5.0
- [react-router-dom](https://npm.io/package/react-router-dom.md) ~4.3.1
- [react-sortablejs](https://npm.io/package/react-sortablejs.md) ~1.4.0
- [socket.io-client](https://npm.io/package/socket.io-client.md) ~2.2.0
- [universal-logger](https://npm.io/package/universal-logger.md) ~1.0.1
- [@tweenjs/tween.js](https://npm.io/package/@tweenjs/tween.js.md) ~17.2.0
- [perfect-scrollbar](https://npm.io/package/perfect-scrollbar.md) ~1.4.0
- [connect-multiparty](https://npm.io/package/connect-multiparty.md) ~2.1.1
- [connect-restreamer](https://npm.io/package/connect-restreamer.md) ~1.0.3
- [session-file-store](https://npm.io/package/session-file-store.md) ~1.1.2
- [i18next-xhr-backend](https://npm.io/package/i18next-xhr-backend.md) ~1.5.1
- [immutability-helper](https://npm.io/package/immutability-helper.md) ~2.9.1
- [namespace-constants](https://npm.io/package/namespace-constants.md) ~0.5.0
- [react-infinite-tree](https://npm.io/package/react-infinite-tree.md) ~0.7.1
- [regenerator-runtime](https://npm.io/package/regenerator-runtime.md) ~0.13.5
- [spawn-default-shell](https://npm.io/package/spawn-default-shell.md) ~2.0.0
- [perspective-transform](https://npm.io/package/perspective-transform.md) ~1.1.3
- [react-facebook-loading](https://npm.io/package/react-facebook-loading.md) ~0.6.1
- [@trendmicro/react-modal](https://npm.io/package/@trendmicro/react-modal.md) ~2.3.0
- [@trendmicro/react-table](https://npm.io/package/@trendmicro/react-table.md) ~0.9.0
- [i18next-node-fs-backend](https://npm.io/package/i18next-node-fs-backend.md) ~2.1.3
- [@trendmicro/react-anchor](https://npm.io/package/@trendmicro/react-anchor.md) ~0.5.6
- [universal-logger-browser](https://npm.io/package/universal-logger-browser.md) ~1.0.1
- [@trendmicro/react-buttons](https://npm.io/package/@trendmicro/react-buttons.md) ~1.3.0
- [martinez-polygon-clipping](https://npm.io/package/martinez-polygon-clipping.md) ~0.5.0
- [@trendmicro/react-dropdown](https://npm.io/package/@trendmicro/react-dropdown.md) ~1.3.0
- [i18next-express-middleware](https://npm.io/package/i18next-express-middleware.md) ~1.2.0
- [@trendmicro/react-validation](https://npm.io/package/@trendmicro/react-validation.md) ~0.1.0
- [@trendmicro/react-breadcrumbs](https://npm.io/package/@trendmicro/react-breadcrumbs.md) ~0.5.4
- [@trendmicro/react-interpolate](https://npm.io/package/@trendmicro/react-interpolate.md) ~0.5.3
- [@trendmicro/react-paginations](https://npm.io/package/@trendmicro/react-paginations.md) ~0.6.0
- [@trendmicro/react-toggle-switch](https://npm.io/package/@trendmicro/react-toggle-switch.md) ~0.5.5
- [i18next-browser-languagedetector](https://npm.io/package/i18next-browser-languagedetector.md) ~2.2.2

## Recent versions

- 3.6.0 (latest) — 2020-07-07
- 3.5.8 — 2020-07-04
- 3.5.7 — 2020-07-04
- 3.5.6 — 2020-07-04
- 3.5.5 — 2020-07-04
- 3.5.4 — 2020-07-03
- 3.5.3 — 2020-07-03
- 3.5.2 — 2020-07-03
- 3.5.1 — 2020-07-03
- 3.5.0 — 2020-07-03

## README

Snapmaker Luban
===============

[![Build Status](https://travis-ci.org/Snapmaker/Luban.svg?branch=master)](https://travis-ci.org/Snapmaker/Luban)
[![Build status](https://ci.appveyor.com/api/projects/status/2912jdsm88wcg19g?svg=true)](https://ci.appveyor.com/project/parachvte/luban)

Snapmaker Luban is an easy-to-use 3-in-1 software tailor-made for Snapmaker machines.
You can customize the printer settings and control the machine using the command panel in Luban anytime with ease.
The software also provides G-code generation support for 3D models, laser engraving / cutting, and CNC milling.

Our goal is to provide a multi-functional 3D software, while making it as accessible and customizable as possible for new users / beginners.

The software is inspired by [cncjs](https://github.com/cncjs/cncjs) by cheton, we also use [CuraEngine](https://github.com/Ultimaker/CuraEngine) for 3D slicing.

## Features

- Desktop applications for macOS, Linux and Windows
- Supported controller: Marlin or Marlin-based controllers
- 3D printing G-code generator
    - Multiple models
    - Manipulate model (Position / Rotate / Duplicate / Lay Flat)
    - Model export and G-code export
    - Built-in and custom configurations for slicing
- Laser G-code generator
    - Multiple models
    - Manipulate model (Position / Rotate / Duplicate)
    - Model export and G-code export
    - Featured modes: B&W, Greyscale, Vector, Text
- CNC G-code generator
    - Multiple models
    - Manipulate model (Position / Rotate / Duplicate)
    - Model export and G-code export
    - Featured modes: Relief, Vector, Text
    - Support Tabs
- Snapmaker 2.0 only features
    - Wi-Fi controls and file transfer
    - Camera Aid Background
- Case Library
- Multi-Language Support
- Keyboard shortcut
- Custom Widgets

## How to install and run

### Use released applications

You can download latest releases of software under the ["**Releases**"](https://github.com/Snapmaker/Luban/releases) section.
It's recommended to use a stable release version unless you want to do some modifications on the source code.

Or you can clone this repository, then follow the instructions in "**Development**" section below.

## Development

### Setup development environment

- Install Node.js 10 (or higher). You can use
[NVM (Node Version Manager)](https://github.com/nvm-sh/nvm) to install and manage multiple Node.js 
versions:

```Bash
> brew install nvm
> nvm install 10
> nvm use 10
```

- Upgrade npm to the latest version:

```Bash
> npm install npm@latest -g
```

### Install dependencies and start dev server

- Use `npm` to install package dependencies:

```Bash
> npm install
```

- Start dev server locally:

```Bash
> npm run dev
```

## Feedback & Contribution

- To submit a bug or feature request, [file an issue](https://github.com/Snapmaker/Luban/issues/new) in github issues.
- To contribute some code, make sure you have read and followed our guidelines for [contributing](https://github.com/Snapmaker/Luban/blob/master/CONTRIBUTING.md).


## License
Snapmaker Luban is released under terms of the AGPLv3 License.

Terms of the license can be found in the LICENSE file or at http://www.gnu.org/licenses/agpl-3.0.html.

---
_Source: https://npm.io/package/snapmaker-luban · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
