English / 中文
- Name: Shadow Editor
- Version: v0.5.1 (coming soon)
- Description: Cross-platform 3D scene editor based on three.js, golang and mongodb.
- Source: GitHub Gitee | Document: GitHub 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!
- Fix a bug that an error occurs when the scene plays which contains a smoke comopnent.
- Fix the bug of renderer size error. (It causes smoke shrink when the scene plays which contains a smoke component)
- Fix the bug of water component error, due to the upgrade of three.js.
- Fix a bug that the category filter on the assets panel lists all the categories on Ubuntu.
- Fix bugs of listing fonts, uploading fonts and creating 3D text.
- Fix the bug of backing up mongodb.
- Update Windows build guide. See Detail
- Install as Windows service. See Detail
- When the ports conflict or
config.toml
is missing, the program will not crash immediately. - Install as Ubuntu service. See Detail
- Fix the total num of assets displayed incorrectly when authority is enabled.
- Fix the bug of saving config.
- Fix the bug of exporting examples.
- Release Date: May 5, 2020
- Update Logs:
- Rewrite the server using golang.
- Fix a bug that
draco
models cannot be loaded due to the upgrade ofthree.js
. - Models in
.json
format are no longer supported. - Fix a bug that the bottom row of the category list window is blocked by the button.
- Fix a bug that the diffuse map cannot be loaded when it attaches to a geometry.
- Fix a bug that thumbnails cannot be set for audio, screenshot and video resources.
- Fix a bug that confirmation dialog cannot be closed with cancel and close button.
- Fix a bug that the role list will not refresh after deleting a role.
Compared with asp.net
, golang
has many advantages:
- Support both
Windows
,Linux
andMac
. - Similar to C language. support
goroutine
, which take great advantages of multi-core, and have high performance. - Easy to learn. Huge standard libraries and third-party libraries, and high development efficiency.
- Can compiled into a single file, and when publish, no need to install
golang
nornodejs
when publishing. - No
iis
required. - Network data is compressed with
gzip
, and the speed of displaying and scene loading is really fast. - No
Visual Studio
required. You can develop withVisual Studio Code
for both the server and web.
Upgrade from C# version:
The data structure and web client is not changed, just copy ./ShadowEditor.Web/Upload/
folder to
build/public/Upload/
.
- 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
(gltf
andglb
, anim),js
(anim),kmz
,lmesh
(anim),md2
,mmd
(pmd
andpmx
, 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
,DRACO
models. - 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.
- 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-w64
orMinGW
on Windows, and make suregcc
can be accessed through the command line) - git 2.25.1+
- make 4.2.1+ (Linux only)
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
If you need a C# version, you can checkout the v0.4.6-csharp
branch which is no longer maintained.
Click to see the install guide.
git checkout -b csharp origin/v0.4.6-csharp
- If you are in
China
, runmake proxy
to set golang and nodejs proxy. - Run
make
to build the server and web. - Edit
build/config.toml
, and modify the database host and port. - Run
make run
to launch the server. You can now visit:http://localhost:2020
.
- If you are in
China
, double clickset_proxy.bat
in thescripts
folder. - Double click
build.bat
in thescripts
folder. - Edit
config.toml
in thebuild
folder, and modify the database host and port. - Double click
ShadowEditor.exe
in thebuild
folder. You can now visit:http://localhost:2020
.
- Edit
./scripts/service_linux/shadoweditor.service
, set the right path. - Run
make service
to install service. - Run
sudo systemctl start shadoweditor
to start service. - Run
sudo systemctl enable shadoweditor
to auto start service.
- Run
install.bat
in thescripts/service_win
folder as administrator. - Edit
service.reg
in thescripts/service_win
folder, setAppDirectory
to the absolute path of thebuild
folder. - Double click
service.reg
in thescripts/service_win
folder. - Open
Windows Services Manager
, startShadowEditor
service.
- 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.
MIT License
- 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