Collab 3D?

Would anyone like to collab with me and create a 3D API that uses the 3D beetle extension? Stuff like creating shapes and primitives at certain positions and even an option to feed vertices to make a custom shape also vectors and moving shapes and scaling them and rotating them! Even adding colliders and gravity… also maybe some extra stuff toO

Todo

Add blocks that allow you to attach scripts to objects

Add blocks that can interact with other objects like move them and do other stuff

Add the ability to add textures/costmes to 3D and 2D objects(And by 2D objects I mean UI)

add the ability to create UI

Add the ability to attach objects to each other

Add the ability to rotate objects

Add the ability to attach objects to the camera

add the ability to clone objects

add the ability to detect collisions between objects

add the ability to get the instance of a object at a certain position

add the ability to set the color of the sky

Sure! Where should we start?

My concepts:

// Rendering

render // uses the beetle on the inside to create the scene
(3D view::other)

// Objects

$cube create cube [Object1] at x: (0) y: (0) z: (0) width (1)

$circle create sphere [Object1] at x: (0) y: (0) z: (0) diameter (1)

// Object Methods

recolor [Object1 v] to [#ff0000]::pen // dropdown automatically searches for names used


delete object [Object1 v]

// Camera

$camera camera move to x: (0) y: (0) z: (0)::looks

// Miscellaneous

graph (([sin V] of (x::variables)) + ([cos V] of (y::variables))) variables: ((x)) ((y)) ((z))::pen

Maybe even a Source Hammer-like map builder to create the maps with?

Thank you guys

We should go with @mobility212 idea and start with those blocks and then build from there on

Also maybe we can make it flexible by making it so the create Object is a reporter and it returns data and you create a variable and do set example = create object and then later in render block we render the object based on its attributes

Also yes we could use that and @mobility212 maybe we could add components like use metaprogramming to attach a script to a object

ok

Who would like to start?

Use this as a base. I present what I have at the moment

No blocks have definitions yet, though. Also, I haven’t implemented this idea…

i made some small changes, and made the menus work

that would be cool

Guys, maybe for rendering objects we should implement a system that prevents lag by only showing objects within a certain distance from the camera and for shapes we could make it so inside the block it uses another block that draws a bunch of points based on vertices and then fills in each side and we can also fill in each object with polygons like OpenGL even though it might take a lot of brainpower

Anything provided we have a sufficient amount of energy and knowledge.


I was planning to make the menus not only list objects that are existing in the 3D world, but also that are fed to blocks used beforehand. (what I mean is if you used the block to create an object, then you insert a block to modify an object, the dropdown should include the name of the object that will be created through the former block).

Next, I wrote basic definitions for blocks we have at the moment except the ones that actually call the library, and followed this:

(The project’s title has a version number, increment the version number for the next update)

That’s a good job… I already did this but I lost the save so it got corrupted but… I’ll just explain what I did to you so you can recreate it…: In the Update scene block I made it so it loops through each item in the _objects_ list and if a cube is in it then it sets the extrusion base to square and it sets the size of the square to the size of the cube and then it moves forward the beetle and it uses the warp block so it’s instant and at the end of he closing of the warp block it goes to the cameras last saved position and for the 3D view block I just made it report the beetle view and I also renamed the update scene block to render scene and I made it create a new sprite if that same sprite doesn’t already exist so it doesn’t create multiple of those sprites and I made it so it gets the 3D view block and sets the new sprites costume to it also the reason why I’m not helping is because tbh I’m bad at snap and tbh again I’m lazy but in the future I will try to help also ima make a todo list rn

My approach is that I want to keep the use flexible. The block for reporting what’s being viewed will not be updated until “update scene” is used. In the actual prototype I conceived, I renamed it to “update scene” because the block that actually renders is that reporter block. If you really want this feature to be kept, I will settle this by creating a block to toggle preferences in this library.

Could you make your post a wiki post so we can check the checkboxes?

Kay, you do whatever you want you can keep it flexible

Made it checkable