English / 中文 | Windows Server | Ubuntu Server | Web Demo | official Website
Note: The server is a compiled version with built-in mongodb, execute start.bat or start.sh to start, and
visit http://localhost:2020 in Google Chrome. Windows version
requires Visual C++ Redistributable for Visual Studio 2015.
Good news! The version based on vite4 + vue3 + ts5 + ant-design-vue7 is coming soon. Click here to view more details.
Open Source Version
Starting from v0.6.1, ShadowEditor only provides core features and extended APIs, and other features will be
provided in the extensions, just like VSCode. We will develop in the dev branch.
https in the config.toml.onTouchStart, onTouchEnd, onTouchMove.three.js to r130.onVRConnected, onVRDisconnected, onVRSelectStart, onVRSelectEnd.Geometry can not be serialized due to the upgrade of three.js.polygonOffset, polygonOffsetFactor, polygonOffsetUnits parameter visualization settings to solve
the problem of depth conflict.visible attribute.Bin type model is no longer supported.prototype to es6 class in the source code.The following is only required when you want to build from source.
tdm-gcc, MinGW-w64 or MinGW on Windows, and make sure gcc can be accessed through the command
line)Note: The version number is for reference only.
You can use git to download the source code.
git clone https://github.com/tengge1/ShadowEditor.git
In China, github is really slow, you can use gitee instead.
git clone https://gitee.com/tengge1/ShadowEditor.git
Web Version:
China, run npm run set-proxy to set golang and nodejs proxy.npm install to install nodejs dependencies.npm run build to build the server and web.build/config.toml, and modify the mongodb host and port.npm start to launch the server. You can now visit: http://localhost:2020.https in the config file. Please visit: https://localhost:2020.Desktop Version:
MongoDB and unzip it in the utils/mongodb folder.npm run build-desktop to build a desktop app in the folder build/desktop.PowerShell or cmd in the build folder as administrator..\ShadowEditor install to install ShadowEditor as a service..\ShadowEditor start to start ShadowEditor service.http://localhost:2020.Windows Services Manager../scripts/service_linux/shadoweditor.service, set the right path.sudo cp ./scripts/service_linux/shadoweditor.service /etc/systemd/system/.sudo systemctl daemon-reload to reload the service daemon.sudo systemctl start shadoweditor to start service.sudo systemctl enable shadoweditor to auto start service.PS E:\github\ShadowEditor\build\> .\ShadowEditor
ShadowEditor is a 3D scene editor based on three.js, golang and mongodb.
This application uses mongodb to store data.
Usage:
ShadowEditor [command]
Available Commands:
debug Debug service on Windows
help Help about any command
install Install service on Windows
serve Start server
start Start service on Windows
stop Stop service on Windows
version Print the version number
Flags:
--config string config file (default "./config.toml")
-h, --help help for ShadowEditor
Use "ShadowEditor [command] --help" for more information about a command.
NodeJs, golang, MongoDB and Visual Studio Code.ESLint, Go, Shader languages support for VS Code, TOML Language Support.
npm scripts usage:
npm install: install nodejs dependencies.
npm run build: build the server and web client.
npm run build-server: build only the server. (For development)
npm run build-web: build only the web client. (For development)
npm run build-desktop: build the desktoop version.
npm run dev: build the web client automatically when files changes.(For development)
npm run copy: Copy assets from web folder to build folder.
npm run start: start the web server.
npm run set-proxy: set golang and nodejs proxy. (In China only)
npm run unset-proxy: unset golang and nodejs proxy.
npm run install-dev: install golang development tools.
npm run eslint: check js files and fix errors automatically.
npm run clean: delete the web and desktop builds.
npm run clear: delete useless nodejs packages.
ShadowEditor is a project for both users and developers. You can contribute and try your idea on this project. No pension, but a lot of fun. To contribute, you should:
Note: DO NOT submit large binaries, or the Pull Request may be rejected. If required, you can add the files or
directories to be ignored to the .gitignore file.
You need to compress the model assets into a zip file, and the entry file cannot be nested in a folder. The server
will decompress and put it in the ./build/public/Upload/Model folder, and add a record in the MongoDB _Mesh
collection.
Basic geometry supports multiple levels of nesting. You can add a group (in the geometry menu), and then drag multiple
models onto the group in the Hierachy Panel.
Edit config.toml and set authority.enabled to true. The default administrator username is admin and the password
is 123456.
asm.js has been disabled because the script debugger is connected. Please disconnect the debugger to enable asm.js.
Error.Complete error: asm.js has been disabled because the script debugger is connected. Please disconnect the debugger to enable asm.js. ammo.js (1,1) SCRIPT1028: SCRIPT1028: Expected identifier, string or number ShadowEditor.js (3948,8) SCRIPT5009: 'Shadow' is not defined.
Solution: Tencent browser does not support ammo.js (WebAssembly) compiled with Emscripten, it is recommended to
use Chrome or Firebox instead.
The data structure and web client is not changed, just copy ./ShadowEditor.Web/Upload/ folder to
build/public/Upload/.
Windows requires Visual C++ Redistributable for Visual Studio 2015. You can install
from: https://www.microsoft.com/en-us/download/details.aspx?id=48145
If the desktop version cannot be opened, you can view logs.txt; if the port conflicts, you can modify the MongoDB and
website ports in resources/app/config.toml.
Install openssl, and git client already contains one; Open cmd, Powershell or shell, and run the following
commands:
openssl genrsa -out privatekey.pem 1024
openssl req -new -key privatekey.pem -out certrequest.csr
openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem
Among the generated files, certificate.pem is the certificate, and privatekey.pem is the key.
MIT License
Thanks to the following open source projects.
https://github.com/golang/go
https://github.com/BurntSushi/toml
https://github.com/dgrijalva/jwt-go
https://github.com/dimfeld/httptreemux
https://github.com/inconshreveable/mousetrap
https://github.com/json-iterator/go
https://github.com/mozillazg/go-pinyin
https://github.com/otiai10/copy
https://github.com/sirupsen/logrus
https://github.com/spf13/cobra
https://github.com/spf13/viper
https://github.com/urfave/negroni
https://go.mongodb.org/mongo-driver
https://github.com/facebook/react
https://github.com/mrdoob/three.js
https://github.com/rollup/rollup
https://github.com/babel/babel
https://github.com/eslint/eslint
https://github.com/rollup/rollup-plugin-babel
https://github.com/rollup/rollup-plugin-commonjs
https://github.com/rollup/rollup-plugin-json
https://github.com/rollup/rollup-plugin-node-resolve
https://github.com/egoist/rollup-plugin-postcss
https://github.com/rollup/rollup-plugin-replace
https://github.com/mjeanroy/rollup-plugin-strip-banner
https://github.com/andyearnshaw/rollup-plugin-bundle-worker
https://github.com/tweenjs/tween.js
https://github.com/JedWatson/classnames
https://github.com/d3/d3-dispatch
https://github.com/i18next/i18next
https://github.com/js-cookie/js-cookie
https://github.com/facebook/prop-types
https://github.com/codemirror/CodeMirror
https://github.com/jquery/esprima
https://github.com/tschw/glslprep.js
https://github.com/zaach/jsonlint
https://github.com/acornjs/acorn
https://github.com/kripken/ammo.js
https://github.com/dataarts/dat.gui
https://github.com/toji/gl-matrix
https://github.com/squarefeet/ShaderParticleEngine
https://github.com/mrdoob/stats.js
https://github.com/mrdoob/texgen.js
https://github.com/yomotsu/VolumetricFire
https://github.com/jonbretman/amd-to-as6
https://github.com/chandlerprall/ThreeCSG