Giter Site home page Giter Site logo

meta3d-technology / meta3d Goto Github PK

View Code? Open in Web Editor NEW
138.0 7.0 21.0 31.87 MB

开源Web3D低代码平台,一条龙可视化搭建Web3D应用、编辑器、引擎,共建开放互助的Web3D生态

Home Page: https://meta3d-website.4everland.website/

License: MIT License

TypeScript 34.11% ReScript 60.53% OCaml 0.68% Reason 0.15% Gherkin 4.37% HTML 0.05% Makefile 0.11%
meta3d editor engine3d low-code web3d web3 engine rescript typescript low-code-framework

meta3d's People

Contributors

callmegaga avatar l1305599284 avatar wukunhuan avatar yyc-git avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

meta3d's Issues

扩展市场/贡献市场->点击图标,出现两个分页

描述错误

扩展市场/贡献市场->点击图标,出现两个分页

再现

再现行为的步骤:

1.进入扩展市场或者贡献市场

2.点击某个协议的图标

3.进入的三级页面有两个分页

预期行为

进入的三级页面应该只有一个分页

屏幕截图

如果适用,添加屏幕截图以帮助解释您的问题。

其他上下文

在此处添加有关该问题的任何其他上下文。

支持“取消选中”

  • 在装配空间->应用装配、包装配->Selected Extensions/Contributes/Packages中,支持取消选中
  • 在装配空间->Element装配->Selected UI Controls中,支持取消选中

UI:
右上角加个“×”号

improve render based on three.js physical material

TODO update editor, engine:

** TODO support all MeshPhysicalMaterial properties in PbrMaterial
** TODO enable shadow map
** TODO enable scene.background(color, map), environment(map)
e.g. webgl_loader_gltf.html

** TODO support more glb

e.g. LightsPunctualLamp.glb

//TODO remove InitJobUtils->set background

UI Control可配置化、抽象化

  • TODO Menu
    Menu->Specific: set Array<Array<name:string, actionName:string>>

  • TODO SceneTree
    separate header, body:
    header = multiple Image Buttons

  • TODO Asset
    separate header, body:
    header = multiple Image Buttons

  • TODO Inspector
    split to Inspector(as container) + multiple Component Inspectors(as member)

  • TODO Controller
    abstract to Switch Button with configable two textures

  • TODO Message

  • TODO Model

提供Web Online IDE,实现开发并发布扩展、贡献、action、input、ui control、协议

目的

//1.可以更好地编辑custom data
2.可以在平台上直接开发、修改和发布扩展、贡献和custom data(action、input、ui control)以及对应的协议

具体方案

对于目的2:

  • 在WebIDE中直接开发、修改和发布扩展、贡献和custom data(action、input、ui control),支持ts语法,提供代码提升(包括获得协议中定义的类型)、高亮等功能

  • 优化协议的开发过程:只填一些模板的类型,以及package.json的必备信息(如name、version),即可直接发布(到npm?)

加强

WebIDE支持Vim

需要完成的步骤

  • TODO 直接开发three.js应用,完成一个完整的项目,实现核心功能

  • TODO 开发一套核心的编辑器,可组合成integrated editor

  • TODO 开发可选的小编辑器(如CSG),用来扩展编辑器

  • TODO 开发核心的引擎包

  • TODO 开发可选的引擎子package,用来扩展引擎

  • TODO 基于编辑器和引擎包,重新完成之前的项目

  • TODO 向用户交付 项目(local和host in platform)、一套编辑器(host in platform)

  • TODO 用户可组合小的编辑器,用来扩展编辑器

  • TODO 用户可切换引擎包

  • TODO 用户可组合引擎子Package,用来扩展引擎

加入 e2e测试

● 使用Cypress+cucumber作为e2e来测试frontend
● 引擎加入 渲染测试

加入进阶的Path Tracer

based on WebGPU(compute shader)

should implement in Wonder.js

** TODO support rect, directional multiple lights(MIS)
** TODO support env map
** TODO support bsdf
** TODO support DLSS, Denoise, NRC by Deep Learning

分页

  • 分页显示二级页面
    从后台拉取该页的数据

增加积分:M币

1M币=1人民币

通过付费购买、贡献(如发布贡献等:其被使用的越多,M币越多)、使用频率(如登录时长)来增加M币

免费用户(权限为基础)可通过使用M币来达到甚至超越权限为升级的用户的权益

M币可用来:

  • 购买付费资产(如扩展等)
  • 升级权限(要大于花钱买的权限,如本来60元买一个月 提升权限,那么需要100M币买一个月 提升权限)
  • 兑换Web3货币或者人民币(参考知乎、b站等给用户发激励费的功能)
  • 。。。。。。

//TODO 加入M币交易模块,允许用户之间转让M币(私下或者公开进行微信转账,从而实现M币兑换人民币?)

发布v2.0版本

https://w2solo.com/topics/3606

  • TODO 写技术文章介绍低代码平台开发思路,顺便宣传

TODO 发布宣传文章:《1分钟搭建自定义的Web3D编辑器》、《1分钟搭建自定义的Web3D引擎》

《基于Meta3D开发一个数字孪生项目》

TODO 然后发布与下面类似的介绍特性的宣传文章

我的开源项目与开源经历分享

参考:
https://github.com/MrXujiang/h5-Dooring

https://www.zhihu.com/people/li-zong-bin-32/posts

https://segmentfault.com/a/1190000020410213#item-5

我的开源项目与开源经历分享

如何宣传个人的 Github 开源项目?

React Native 一站式开发解决方案

NocoBase —— 开源免费的无代码开发平台

https://www.zhihu.com/column/c_1411440391594340352

  • TODO 发布平台

朋友圈、QQ签名、知乎、博客园、csdn、开源**、掘金、https://w2solo.com/

更多详见:
https://www.duli.one/#
https://w2solo.com/topics/4257
https://mp.weixin.qq.com/s?__biz=MzU4NDE1MzIwNg==&mid=2247484554&idx=1&sn=fca85418968776386413c51062dcc2a1&chksm=fd9f6593cae8ec854a7e9d681a5a8006840a3e61bace1abf76f4b9a19444eff0ff6beebb0977&cur_album_id=3044710252514050050&scene=189#wechat_redirect

如何让你的产品被更多潜在用户看到

  • 赠送PR/提交Issue/讨论Discussion的同学 礼物?

refer to
https://www.openkylin.top/news/3011-cn.html

  • SEO优化?

增加redo/undo

  • TODO 增加redo/undo

** TODO 引擎

** TODO 编辑器

  • TODO fix: when stop, should restore to the state before run

支持直接搭建Web3D应用

覆盖C端用户(Wonder的用户)

refer to:
Wonder
PlayCanvas
thingjs

  • TODO provide a defult editor to develop app

  • TODO editor add publish to cloud
    TODO Meta3D support host published app from editor

  • TODO can import app to editor

  • TODO can import the editor which build app and app's event data

  • TODO add build app flow & guide
    how user to build app in Meta3D?
    1.prepare editor

    • use current published editor
    • or build custom editor
      2.build app in editor

完善ui control

** TODO add arcballCameraController inspector

TODO run test:
editor
publish

** TODO fix: game view handle no active camera when dispose camera in sceneTree, dispose basiccameraview, perspective component

** TODO add "add Component"
add select button

** TODO add Modal
publish, export should show Modal

Menu add "关于Meta3D":
show Modal

** TODO add Debug

** TODO Message

e.g. show import progress bar

编辑器支持WebGPU

  • 有UI,有渲染结果
    引入imgui-webgpu

    ○ 引擎
    //// ■ 使用webgpu进行渲染(光线投射)

  • 跟webgl一样,只绘制立方体(读取场景数据)
    ○ 编辑器
    ■ 加入imgui webgpu
    ■ 支持webgpu fbo作为edit/run view

加入AI

发布v1.0 Beta版本

  • TODO check all TODOs and clear

  • Github: lanaguage remove Javascript

  • TODO 协议统一为MIT for Meta3D, Website

  • 封装three相关的extension, contribute 加入License说明(说明是对three.js的封装)

  • TODO solve ci sometimes fail: Actions->Install error

  • TODO make ci pass in README

  • TODO github->codecov should contain platform/assemble-space

  • TODO author统一为Meta3D

  • TODO 更新logo for website, github org, production, loading

  • TODO loading, Publish->loading add Meta3D Logo

  • TODO 买域名

  • TODO 购买cloud,准备dev、pro两套环境

  • TODO 优化首次加载平台
    compress js

TODO decrease file size

TODO action publish->meta3d.js use compress

TODO host platform, website to cloudbase
TODO all use 域名

TODO update platform production

  • TODO publish: v1.0.0-beta.1.0

TODO show changelog

add 新手引导

refe to:
https://www.google.com.hk/search?q=%E6%96%B0%E6%89%8B%E5%BC%95%E5%AF%BC+ToB&oq=%E6%96%B0%E6%89%8B%E5%BC%95%E5%AF%BC+ToB&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIJCAEQABgMGIAEMgkIAhAAGAwYgAQyCQgDEAAYDBiABDIJCAQQABgMGIAEMgcIBRAAGIAEMgkIBhAAGAwYgAQyBwgHEAAYgATSAQg0NDAzajBqN6gCALACAA&sourceid=chrome&ie=UTF-8#ip=1

https://maimai.cn/article/detail?fid=1744301662&efid=zWvZy6zgFCQn0gIGeGluPA

TODO 平台首页:
加入引导链接,如 创建第一个引擎的文档链接等
加入反馈链接(discussion, issue, 加群)

引导用户star!

TODO 加入帮助中心
包括新手引导

refer to:
如何实现前端新手引导功能?
https://juejin.cn/post/6960493325061193735

第一次进入平台

/*
用户刚进来平台后有两个选项:

  • 浏览发布的编辑器
  • 快速注册
    */

//要说明各自的简介,如:只需输入账号名即可完成注册!快来注册吧!

给出简介:
https://pic4.zhimg.com/80/v2-b79b57c19567a1ce65ccc4d287743e67_1440w.webp

引导用户快速注册
如:只需输入账号名即可完成注册!快来注册吧!

第一次登录
第一次进入Market
第一次进入发布的编辑器、发布的页面
第一次进入Ap Assemble
第一次进入Element Assemble
第一次进入Package Assemble
第一次发布编辑器
第一次发布页面
第一次使用Custom

编辑器实现publish

用户可以实现自己的后端逻辑;
Meta3D提供Web3、Clound后端的Extension供用户选择;

解决因升级造成的兼容性问题

refer to:
说透低代码-17|兼容性问题:如何有效发现兼容性问题?
说透低代码-18|兼容性问题:如何有效解决兼容性问题?
https://time.geekbang.org/column/article/564236 -> 评论

  • TODO 处理后端数据兼容性

TODO 加入数据adapter层?

疑问

  • if app or package binary change, then only can use if else in default/meta/ code instead of update them in database!?

answer: no, can still update in database by:
1.use old default/meta/ code to get their data(all extensions,contributes,packages,... data)
2.use new default/meta/ code to write them to a new binary!

Have you considered RUST?

Hi yyc:
Old fans from wonder 2017.... Have you considered RUST?

The most interesting thing I've read recently is that there is a WebGPU Rust project where you can use that API for desktop development, not tied to a browser.

选择前检查是否登录

  • TODO 在扩展市场、贡献市场、包市场 中选择扩展、贡献、包前、 以及 装配前,先检查是否登录,如果没登录则跳转到登录页面

  • TODO user add email

加入测试空间

● 平台加入e2e测试(用户可以上传测试用例到平台,然后在平台中跑e2e测试来测试发布的扩展/贡献/App)
use cypress?

https://wanago.io/2019/12/30/javascript-testing-introduction-end-to-end-testing-cypress/

扩展包、应用增加e2e测试
e.g. 引擎扩展包增加渲染测试

● 加入测试空间
对扩展包、发布的应用进行e2e测试

○ 渲染测试
■ 对编辑器扩展包进行渲染测试
Puppeteer
webgl1 render
提供正确图片?
提供测试代码?

如何更新渲染测试(将失败的渲染测试更新,更新正确图片为实际图片)?

perf: optimize editor->IMGUI

TODO use ImGui.ShowMetricsWindow() to show debug

description
run the editor is slow

reason
now even run the simplest editor(Scene View + Game View), GPU will take 8ms in each frame. the imgui cost GPU

solution
1.reduce ui size
e.g. reduce window size which are overlay by upper ui controls

but this lead only a litter increase fps

2.optimize imgui
refer to:
Performance improvement suggestion
https://community.intel.com/t5/Intel-oneAPI-Data-Parallel-C/Optimizing-Performance-and-Memory-Usage-in-ImGui-based/td-p/1464228
Could ImGUI Be the Future of GUIs?

TODO optimize Scene/Game View?

3.imgui use webgpu backend

/*
4..use UIElements
refer to:
https://blog.csdn.net/u010019717/article/details/102540067
https://www.slideshare.net/unity3d/built-for-performance-the-uielements-renderer-unite-copenhagen-2019

*/

为custom data提供代码编辑器

image

image

目的

1.可以更好地编辑custom data
//2.可以发布custom data到贡献市场

具体方案

对于目的1:

  • 在代码编辑器中编辑custom data,支持ts语法,提供代码提示(包括获得editor whole协议、选择的action等贡献的协议 中定义的类型)、高亮、自动补全等功能

  • file str应该跟原生的input/action的Main.ts文件一样,这样可方便用户要发布时可直接将其拷贝到本地

/*
对于目的2:

  • 增加对协议的编辑和发布

    • 优化协议的开发过程:只填一些模板的类型,以及package.json的必备信息(如name、version),即可直接发布(到npm?)
  • 增加发布到贡献市场
    */

refer to:

https://juejin.cn/post/7121512390159499278#heading-10
https://juejin.cn/post/7146457023415058468
https://theia-ide.org/

https://cloud.tencent.com/document/product/1301/57912

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.