ShadowEditor
Cross-platform 3D scene editor based on three.js, golang and mongodb for desktop and web. https://tengge1.github.io/ShadowEditor-examples/
Install / Use
/learn @tengge1/ShadowEditorREADME
Shadow Editor
English / 中文 | <a href="https://github.com/tengge1/ShadowEditor/releases/download/v0.6.0/ShadowEditorServer-win32-x64.zip" title="Requires `Visual C++ Redistributable for Visual Studio 2015`"> Windows Server</a> | <a href="https://github.com/tengge1/ShadowEditor/releases/download/v0.6.0/ShadowEditorServer-linux-x64.zip"> Ubuntu Server</a> | 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.
- Name: Shadow Editor
- Version: v0.6.1 (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(rfja)
- Technology Stack: html, css, javascript, rollup, react.js, webgl, three.js, golang, mongodb, nodejs, electron, protocol buffers.
- If helpful to you, please DOnate to support us. thank you!
Open Source Version
<img src="https://gitee.com/tengge1/ShadowEditor/raw/master/images/scene20200503_en.jpg" /> <img src="https://gitee.com/tengge1/ShadowEditor/raw/master/images/20241009.png" />v0.6.1 is Coming Soon
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.
- Fix the bug that some versions of go typeface management list report errors.
- Hide the model history version tab.
- When the sprite is selected, the border is no longer displayed.
- Fix searchfield dropdown style bug.
v0.6.0 has Released
- Release Date: July 24, 2021
- Update Logs:
- Fix the bug that creates a new mongo connection when request.
- Check VR in the status bar to enable VR.
- Set scene transform.
- How to popup a window when click an object: https://gitee.com/tengge1/ShadowEditor/issues/I3APGI
- You can enable
httpsin theconfig.toml. - Add event in the mobile browser to the script:
onTouchStart,onTouchEnd,onTouchMove. - Upgrade
three.jsto r130. - Add VR event to the script:
onVRConnected,onVRDisconnected,onVRSelectStart,onVRSelectEnd. - VR all-in-one handle controller supports, for example: htc vive.
- Fix the bug of deleting script.
- Fix a bug that
Geometrycan not be serialized due to the upgrade ofthree.js. - Add material
polygonOffset,polygonOffsetFactor,polygonOffsetUnitsparameter visualization settings to solve the problem of depth conflict. - Fix a bug that component in mesh cannot save the
visibleattribute. Bintype model is no longer supported.- Fix cube texture bug.
- Rewrite all the
prototypeto es6classin the source code. - Remove the visual module.
- Fix a bug that not copy the skyball texture when export a scene.
- Fix rain and snow bug.
- Modify the background color and lighting, so as not to add the same color as the background and make it difficult to see clearly.
- Fix particle emitter bug.
- Fix cloth bug.
- 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] Cross-platform
- [x] Small scene editing
- [x] Add mesh
- [x] 3ds, 3mf, amf, assimp, awd, babylon, 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
- [x] Others
- [x] VR:cardboard, htc vive, chrome, firefox
- [x] Bullet physics engine
- [x] Add mesh
- [x] UI Controls
- [x] Canvas
- [x] Form: Button, CheckBox, Form, FormControls, IconButton, IconMenuButton, ImageButton, Input, Label, LinkButton, Radio, SearchField, Select, TextArea, Toggle
- [x] Icon
- [x] Image: Image, ImageList, ImageSelector, ImageUploader
- [x] Layout: AbsoluteLayout, AccordionLayout, BorderLayout, HBoxLayout, TableLayout, VBoxLayout
- [x] Menu: ContextMenu, MenuBar, MenuBarFiller, MenuItem, MenuItemSeparator, MenuTab.
- [x] Panel
- [x] Progress: LoadMask
- [x] Property: ButtonProperty, ButtonsProperty, CheckBoxProperty, ColorProperty, DisplayProperty, IntegerProperty, NumberProperty, PropertyGrid, PropertyGroup, SelectProperty, TextProperty, TextureProperty
- [x] SVG
- [x] Table: DataGrid, Table, TableBody, TableCell, TableHead, TableRow
- [x] Timeline
- [x] Toolbar: Toolbar, ToolbarFiller, ToolbarSeparator
- [x] Tree
- [x] Window: Alert, Confirm, Message, Photo, Prompt, Toast, Video, Window
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+
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 both Windows and Ubuntu
Web Version:
- If you are in
China, runnpm run set-proxyto set golang and nodejs proxy. - Run
npm installto install nodejs dependencies. - Run
npm run buildto build the server and web. - Edit
build/config.toml, and modify the mongodb host and port. - Run
npm startto launch the server. You can now visit:http://localhost:2020. - If you enable
httpsin the config file. Please visit:https://localhost:2020.
Desktop Version:
- Download
MongoDBand unzip it in theutils/mongodbfolder. - Build web version.
- Run `npm run build-de
