Shadow Editor
English / 中文
- Name: Shadow Editor
- Version: v0.5.3(Coming Soon)
- Description: Cross-platform 3D scene editor based on three.js, golang and mongodb.
- Source: GitHub Gitee | Document: Gitee | Demo: GitHub Gitee | Video: Weibo Bilibili | Assets: BaiduNetdisk
- Technology Stack: html, css, javascript, rollup, react.js, webgl, three.js, golang, mongodb.
- If helpful to you, please DOnate to support us. thank you!
v0.5.3 is Coming Soon
v0.5.2 has Released
- Release Date: May 31, 2020
- Update Logs:
- MongoDB user and password configuration.
- Documentation has moved to gitee wiki. See Detail
- Use JSON web tokens (JWT) for user authentication.
- Automatic saving is disabled by default.
- Fix the bug that the uploaded data of non-admin users is not displayed.
- Fix the bug that the resource list does not load when the user does not have permission to view all resources.
- Fix the bug that the thumbnail cannot be set in the texture.
- Fix the error of adding gltf format model to the scene.
- Non-administrators cannot edit or delete other people's public scenes.
- Fix the bug that it will be
saved aswhen save twice. - The resource and permission management tests are complete, and there are almost no bugs in the golang server.
Features
- Cross-platform:
Windows,Linux,Mac; and supports desktop and web versions. - It supports many 3D formats:
3ds,3mf,amf,assimp(anim),awd,babylon,binary,bvh(anim),collada,ctm,draco,fbx(anim),gcode,gltf(gltfandglb, anim),js(anim),kmz,lmesh(anim),md2,mmd(pmdandpmx, anim),nrrd,obj,pcd,pdb,ply,prwm,sea3d(anim),stl,vrm,vrml,vtk,X. (anim) means it supports animation. - Built-in objects: group; plane, cube, circle, cylinder, sphere, icosahedron, torus, torus knot, teapot, lathe; unscaled text, 3D text; line segments, CatmullRom curve, quadratic Bezier curve, cubic Bezier curve, ellipse curve; point marks; arrow helper, axes helper; sprite.
- Built-in lights: ambient light, directional light, point light, spotlight, hemispherical light, rect area light.
- Built-in components: background music, particle emitter, sky, fire, water, smoke, cloth, berlin terrain, sky sphere.
- Support materials: LineBasicMaterial, LineDashedMaterial, MeshBasicMaterial, MeshDepthMaterial, MeshNormalMaterial, MeshLambertMaterial, MeshPhongMaterial, PointsMaterial, MeshStandardMaterial, MeshPhysicalMaterial, SpriteMaterial, ShaderMaterial, RawShaderMaterial.
- Edit javascript, shader program and json with intelligence.
- Live player can play animations in the scene.
- Exporting
gltf,obj,ply,stl,Collada,DRACOmodels. - Publish scene as static resources, and can be embedded in
iframe. - Support languages:
English,中文,繁體中文,日本語,한국어,русский,Le français. - Scene version management: supporting history and logs, undo and redo, auto saving.
- Authority management: organization, user, role, authority, registration, login, and password modification.
- Resource management: scene, mesh, texture, material, audio, animation, screenshot, video, typeface.
Requirements
- MongoDB v3.6.8+
- Chrome 81.0+ or Firefox 75.0+
The following is only required when you want to build from source.
- Golang 1.14.2+
- NodeJS 14.1+
- gcc 9.3.0+ (
tdm-gcc,MinGW-w64orMinGWon Windows, and make suregcccan be accessed through the command line) - git 2.25.1+
- make 4.2.1+ (Linux only)
Note: The version number is for reference only.
Download and Compile
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
Build on Ubuntu
- If you are in
China, runmake proxyto set golang and nodejs proxy. - Run
maketo build the server and web. - Edit
build/config.toml, and modify the database host and port. - Run
make runto launch the server. You can now visit:http://localhost:2020.
Build on Windows
- If you are in
China, double clickset_proxy.batin thescriptsfolder. - Double click
build.batin thescriptsfolder. - Edit
config.tomlin thebuildfolder, and modify the database host and port. - Double click
ShadowEditor.exein thebuildfolder. You can now visit:http://localhost:2020.
Install as Ubuntu Service
- Edit
./scripts/service_linux/shadoweditor.service, set the right path. - Run
make serviceto install service. - Run
sudo systemctl start shadoweditorto start service. - Run
sudo systemctl enable shadoweditorto auto start service.
Install as Windows Service
- Run
install.batin thescripts/service_winfolder as administrator. - Edit
service.regin thescripts/service_winfolder, setAppDirectoryto the absolute path of thebuildfolder. - Double click
service.regin thescripts/service_winfolder. - Open
Windows Services Manager, startShadowEditorservice.
Frequently Asked Questions
- Failed when upload models.
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.
- How to combine multiple models together?
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.
- How to enable authority?
Edit config.toml and set authority.enabled to true. The default administrator username is admin and the password is 123456.
- The brower report
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.
- How can I upgrade from C# to golang version?
The data structure and web client is not changed, just copy ./ShadowEditor.Web/Upload/ folder to
build/public/Upload/.
License
MIT License
Related Links
- Three.js: https://threejs.org/
- Golang: https://golang.org/
- Golang (In China): https://golang.google.cn/
- MongoDB: https://www.mongodb.com/
- LOL model viewer: https://github.com/tengge1/lol-model-viewer
- Model download1: https://sketchfab.com/3d-models?features=downloadable
- Model download2: https://www.3dpunk.com/work/index.html?category=downloadable
