Comments (20)
Once the STL data is loaded inside MC, the next thing is to personalize the blocks used to build ech part of the Adabadia. For doing that, @bazarum is creating an AI that customize each block. How?
It is a GAN network that learns from photos the styles of builds. The AI can then transfer the style from the original Abadia images to the building inside MC.
Then you can train the AI to build one room, and after that, it can create the others room. A building AI sounds like a great idea.
from mcthings.
Creating Scenes in MC using Things generated by AIs sounds ... cool!
from mcthings.
There are two possible data input formats:
- Height of points in CSV format: using it and based on a cube, the STL files are created. Probably is the faster approach, because it is just using the height of each point for dropping a block.
- STL: the advantge of it is that it is a common format used in 3d printing. But if the models are not created using cubes, probably is not that useful for Minecraft
For a quick hack, the CSV format is the way to go. If we want just to support the building of the AbadIA, I would use the CSV data. But let's learn a bit about STL.
from mcthings.
The best approach to play with how the STL files are generated is to use the notebook: https://github.com/LaAbadIAdelCrimen/abadia-3d/blob/master/abadia_3d.ipynb Just open it in Colab, upload the heights file inside the notebook and start playing!
from mcthings.
After playing a bit with STL files, the best thing is that you can view it in tools like Blender. The ntl-stl API does not seems to be pretty rich for building scenes. In the notebook the translate (move) is implemented directly.
Reading more about STL and ntl-stl there are big analogies with McThings:
- A Mesh is a kind of Scene
- You add mesh objects (Things) to a Mesh
- You can rotate or move objects
So we can create STL scenes easily. And if we base them in cubes, they can be converted to McThings scenes and show inside Minecraft.
from mcthings.
And we have arrived to thw world of STL importers to Minecraft!
And all of them are based on TinkerCAD (from Autodesk). You work inside TiinkerCAD the modelling and then export to Minecraft format (schematic) and insert into Minecraft using WorldEdit or MCEdit. Cool!
https://blog.tinkercad.com/2013/08/15/tinkercraft (2013)
https://medium.com/sandbox-game/voxedit-how-to-get-your-assets-into-minecraft-4be598b838f6 (2019)
https://www.instructables.com/id/Import-Custom-3D-Models-Into-Your-Minecraft-World/
And of course, you have also exporters: from Minecraft to STL.
People are working in programs for converting STL to MC Schematics
There are already options like https://minecraft.gamepedia.com/Programs_and_editors/Binvox that converts from stl (and other formats) to Schematics which can be imported in MC with MCEdit (and WordlEdit).
from mcthings.
The process of converting a set of 3D polygons to their equivalents in blocks is called "voxelization" (https://minecraft.gamepedia.com/Programs_and_editors/Binvox)
from mcthings.
I have learnt a lot about 3D modelling and Minecraft (for example, model in Blender, export to STL, use binvox to convert to schematics and import in MC using WorldEdit or MCEdit), but, is it clear if use the CSV file with the heights ot the STL file in order to import Abadia inside MC?
Creating scenes from STL models? That is really cool. McThings could compose incredible scenes with that. But for example, Blender can do the same composition.
What is the main advantage of Thigns in McThings vs STL or other voxelization formats? That Things can be created programming. Imagine creating a Pyramid in Blender for example. Probably you can create also programming based models in Blender.
Food for thought!
from mcthings.
Using the remesh modifier and the corners of a cube 231.015 units across, you can get a 1-to-1 block model in any shape and adjust it as needed.
edit: Forgot, set the mode to blocks and the octree depth to 8»
So you can convert any model to cubes! And then with binvox to a schematic and the import it in Minecraft.
from mcthings.
My impression is that STL/3D/voxelization world is too wide to covert it in McThings yet.
So for this first approach, I will just add support for reading the CSV file with the heights and just build blocks for the ground to this height. In this way, we have total control over the process in order to tune it. It is the original data source (the STL file is creating from it) also. And I will continue exploring the import/export from MC using STL and others formats.
from mcthings.
We are already loading the CSV files and drawing them in MC. We need to check that it is done correctly.
from mcthings.
Once this support is finished adding support for loading files from Lidar should not be that hard: https://hackaday.com/2017/05/15/digitize-your-room-with-lidar/
from mcthings.
Last version with the complete logic:
from mcthings.
I will move all of this to mcthigs_extras because it is a bit experimental.
from mcthings.
https://github.com/juntosdesdecasa/mcthings/blob/develop/scenes/AbadIA.ipynb
from mcthings.
Final steps:
- Control better the placement of the building
- Add end_point so we can remove the Abadia easily
- Add the walls and check that insde the Abadia you can move
from mcthings.
from mcthings.
Ok, I will close this ticket once @bazarum validates it.
from mcthings.
Let's compare with the SML versions!
https://github.com/LaAbadIAdelCrimen/abadia-3d/blob/master/level0.stl
It is identical! Great! We can close now this ticket!
from mcthings.
It is going to be hard to reach the level of detail of the original game:
from mcthings.
Related Issues (20)
- Learn Vulcan API HOT 3
- Research Open Source Physics engines HOT 5
- Learn Computer Graphics HOT 1
- Research Ray Tracing HOT 11
- Explore the Cyrille Rossant Python Ray Tracer HOT 4
- Implement a Ray Cast renderer for McThings
- Test that McThings works with MC 1.16.1 HOT 2
- Create a Blender renderer for McThings
- Remove McDrawing reimplementing the Sphere
- Research resources pack in Minecraft HOT 4
- Research shaders in Minecraft HOT 1
- Research the use of textures inside Blender
- Research the use of shaders inside Blender
- Implement voxels collisions in Godot physics testbed HOT 14
- Create a Godot renderer for McThings
- vox2schematic - TypeError: to_nbt() takes 3 positional arguments but 4 were given HOT 1
- Test McThings with the last version of Minecraft HOT 2
- Research the migration from TravisCI to GitHub Actions HOT 1
- vox2schematic not working
- Implement McThings over Godot
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mcthings.