# Shadow Editor
English / [中文](README_zh.md) |
<a href="https://github.com/tengge1/ShadowEditor/releases/download/v0.5.5/ShadowEditor-win32-x64.zip" title="Requires `Visual C++ Redistributable for Visual Studio 2015`">
Windows Desktop</a> |
<a href="https://github.com/tengge1/ShadowEditor/releases/download/v0.5.5/ShadowEditor-linux-x64.zip">
Ubuntu Desktop</a> | [Web Demo](https://tengge1.github.io/ShadowEditor-examples/)
[![image](https://img.shields.io/github/stars/tengge1/ShadowEditor)](https://github.com/tengge1/ShadowEditor/stargazers)
[![image](https://img.shields.io/github/forks/tengge1/ShadowEditor)](https://github.com/tengge1/ShadowEditor/network/members)
[![image](https://img.shields.io/github/issues/tengge1/ShadowEditor)](https://github.com/tengge1/ShadowEditor/issues)
![image](https://img.shields.io/github/languages/top/tengge1/ShadowEditor)
![image](https://img.shields.io/github/commit-activity/w/tengge1/ShadowEditor)
[![image](https://img.shields.io/github/license/tengge1/ShadowEditor)](https://github.com/tengge1/ShadowEditor/blob/master/LICENSE)
[![image](https://travis-ci.org/tengge1/ShadowEditor.svg?branch=master)](https://travis-ci.org/github/tengge1/ShadowEditor)
* Name: Shadow Editor
* Version: v0.6.0 (July 24, 2021)
* Description: Cross-platform 3D scene editor based on three.js, golang and mongodb.
* Source: [GitHub](https://github.com/tengge1/ShadowEditor) [Gitee](https://gitee.com/tengge1/ShadowEditor) |
Document: [Gitee](https://gitee.com/tengge1/ShadowEditor/wikis/pages) |
Demo: [GitHub](https://tengge1.github.io/ShadowEditor-examples/) [Gitee](http://tengge1.gitee.io/shadoweditor-examples/)
|
Video: [Weibo](https://weibo.com/tv/v/IjIn9AyvX?fid=1034:4446986821107725) [Bilibili](https://www.bilibili.com/video/av78428475?from=search&seid=9203731141485399611)
| Assets: [BaiduNetdisk(rfja)](https://pan.baidu.com/s/1BYLPyHJuc2r0bS9Te3SRjA)
* Technology Stack: html, css, javascript, rollup, react.js, webgl, three.js, golang, mongodb, nodejs, electron,
protocol buffers.
* If helpful to you, please [DOnate](https://gitee.com/tengge1/ShadowEditor) to support us. thank you!
<img src="https://gitee.com/tengge1/ShadowEditor/raw/master/images/scene20200503_en.jpg" />
<img src="https://gitee.com/tengge1/ShadowEditor/raw/master/images/vr.jpg" />
## v0.6.1 is Coming Soon
## v0.6.0 has Released
* Release Date: July 24, 2021
* Update Logs:
1. Fix the bug that creates a new mongo connection when request.
2. Check VR in the status bar to enable VR.
3. Set scene transform.
4. How to popup a window when click an object: https://gitee.com/tengge1/ShadowEditor/issues/I3APGI
5. You can enable `https` in the `config.toml`.
6. Add event in the mobile browser to the script: `onTouchStart`, `onTouchEnd`, `onTouchMove`.
7. Upgrade `three.js` to the newest version, and may cause a lot of bugs.
8. Add VR event to the script: `onVRConnected`, `onVRDisconnected`, `onVRSelectStart`, `onVRSelectEnd`.
9. VR all-in-one handle controller supports, for example: htc vive.
10. Fix the bug of deleting script.
11. Fix a bug that `Geometry` can not be serialized due to the upgrade of `three.js`.
12. Add material `polygonOffset`, `polygonOffsetFactor`, `polygonOffsetUnits` parameter visualization settings to solve
the problem of depth conflict.
13. Fix a bug that component in mesh cannot save the `visible` attribute.
14. `Bin` type model is no longer supported.
15. Fix cube texture bug.
16. Rewrite all the `prototype` to es6 `class` in the source code.
17. Remove the visual module.
18. Fix a bug that not copy the skyball texture when export a scene.
19. Fix rain and snow bug.
20. Modify the background color and lighting, so as not to add the same color as the background and make it difficult to
see clearly.
21. Fix particle emitter bug.
22. Fix cloth bug.
23. Fix the bug of dynamic setting shadow.
## Feature List
- [x] General
- [x] Cross-platform
- [x] Windows, Linux, Mac
- [x] Desktop, Web
- [x] Multi-language support
- [x] English、中文、繁體中文、日本語、한국어、русский、Le français
- [x] Assets management
- [x] scene, mesh, texture, material, audio, animation, screenshot, video, typeface
- [x] Authority management
- [x] organization, user
- [x] role, authority
- [x] registration, login, password modification
- [x] Version management
- [x] Scene history and logs
- [x] undo, redo, auto saving
- [x] Player
- [x] play animations in the scene in real time, and can play full screen and in new window
- [x] Settings
- [x] Display, renderer, helpers, filter, weather, control mode, select mode, add mode, language
- [x] Small scene editing
- [x] Add mesh
- [x] 3ds, 3mf, amf, assimp, awd, babylon, binary, bvh, collada, ctm
- [x] draco, fbx, gcode, gltf, glb, js, kmz, lmesh, md2, pmd, pmx
- [x] nrrd, obj, pcd, pdb, ply, prwm, sea3d, stl, vrm, vrml, vtk, X
- [x] Built-in objects
- [x] group
- [x] plane, cube, circle, cylinder, sphere, icosahedron, torus, torus knot, teapot, lathe
- [x] unscaled text, 3D text
- [x] line segments, CatmullRom curve, quadratic Bezier curve, cubic Bezier curve, ellipse curve
- [x] point marks
- [x] arrow helper, axes helper
- [x] sprite
- [x] Built-in lights
- [x] ambient light, directional light, point light, spotlight, hemispherical light, rect area light
- [x] point light, hemispherical light, rect area light helper
- [x] Built-in components
- [x] background music, particle emitter
- [x] sky, fire, water, smoke, cloth
- [x] berlin terrain, sky sphere
- [x] Materials editing
- [x] LineBasicMaterial, LineDashedMaterial, MeshBasicMaterial, MeshDepthMaterial, MeshNormalMaterial
- [x] MeshLambertMaterial, MeshPhongMaterial, PointsMaterial, MeshStandardMaterial, MeshPhysicalMaterial
- [x] SpriteMaterial, ShaderMaterial, RawShaderMaterial
- [x] Post-processing
- [x] After-image, bokeh, dot screen, FXAA, glitch
- [x] halftone, pixel, RGB shift, SAO
- [x] SMAA, SSAA
- [x] SSAO, TAA
- [x] Text editing
- [x] javascript editing with intelligence
- [x] shader editing
- [x] json file editing
- [x] Mesh export
- [x] gltf、obj、ply、stl、Collada、DRACO
- [x] Scene publishment
- [x] Publish scene as static resources, and can be embedded in iframe
- [x] Examples
- [x] Arkanoid, camera, particle, ping pong, shader
- [x] General tools
- [x] Select, pan, rotate, zoom
- [x] Perspective view, front view, side view, top view, wireframe mode
- [x] Screenshot, record
- [x] Draw point, draw line, draw polygon, spray
- [x] Measure distance
- [ ] Others
- [x] VR:cardboard, htc vive, chrome, firefox
- [ ] Bullet physics engine
- [ ] Ray tracing rendering, voxel rendering
- [ ] UV unwrap
- [ ] Automatic pathfinding
- [ ] Batch rendering
- [ ] Occlusion culling
- [ ] Split screen display
- [ ] Data visualization
- [ ] UI
- [ ] Panel, tab panel
- [ ] Button, radio, checkbox, dropdown, slider
- [ ] Data table
- [ ] Charts
- [ ] Histogram
- [ ] Pie chart
- [ ] Line chart
- [ ] Visualization config
- [ ] Layout management
- [ ] data source config
- [ ] Real-time data
- [ ] WebSocket
- [ ] Ajax
## Requirements
1. MongoDB v3.6.8+
2. Chrome 81.0+ or Firefox 75.0+
The following is only required when you want to build from source.
1. Golang 1.14.2+
2. NodeJS 14.1+
3. gcc 9.3.0+ (`tdm-gcc`, `MinGW-w64` or `MinGW` on Windows, and make sure `gcc` can be acc