Cross-platform 3D scene editor based on three.js, golang and mongodb for desktop and web. https://tengge1.github.io/ShadowEditor-examples/
three.jsto the newest version, and may cause a lot of bugs.
Geometrycan not be serialized due to the upgrade of
polygonOffsetUnitsparameter visualization settings to solve the problem of depth conflict.
The following is only required when you want to build from source.
MinGWon Windows, and make sure
gcccan 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
githubis really slow, you can use
git clone https://gitee.com/tengge1/ShadowEditor.git
npm run set-proxyto set golang and nodejs proxy.
npm installto install nodejs dependencies.
npm run buildto build the server and web.
build/config.toml, and modify the mongodb host and port.
npm startto launch the server. You can now visit:
httpsin the config file. Please visit:
MongoDBand unzip it in the
npm run build-desktopto build a desktop app in the folder
buildfolder as administrator.
.\ShadowEditor installto install ShadowEditor as a service.
.\ShadowEditor startto start ShadowEditor service.
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-reloadto reload the service daemon.
sudo systemctl start shadoweditorto start service.
sudo systemctl enable shadoweditorto 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.
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 you 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
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
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
config.toml and set
true. The default administrator username is
admin and the password is
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
The data structure and web client is not changed, just copy
./ShadowEditor.Web/Upload/ folder to
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
openssl, and git client already contains one; Open
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.
Thanks to the following open source projects.