Anyone building anything with Godot?

[This first post lifted from a separate thread where Godot was mentioned]

Godot is still far from Unreal in terms of polish but it is definitely a tool we should be looking at, even beyond AR / VR, it's a great tool for building applications outside of the typical games it's known for. For example, here's a paint app built with Godot. I even tried my hands at a to-do-list app, aiming at a tool that can be used for site meeting minutes and building snag lists amongst other things....

bitacovirjtm2020hyo

Comments

  • Interested in seeing what other people are doing with Godot within the context of the AEC industry, with AR / VR, but also in unexpected ways.

  • Proprietary tools like Enscape let you quickly ship a standalone executable for a client to view their building. I've used Godot to do just that - I think I took some FPS template and simply swapped out the geometry with the model.

    It wasn't as smooth though running on the PC compared to Enscape. It was also nowhere near the usability of Enscape, which allows architects to create these things with literally one click. On the plus side, custom branding, and cross platform support.

    bitacovir
  • edited September 2020

    IHMO, Godot should be used mainly in construction, their support for VR AR make a better alternative to Autodesk Layout Point , other features:

    +according to their documentation they already accept IFC
    +they have their own data flow programing language
    +Python API
    +Support Android

    Any device with GPS and Gyroscope might create precise:

    Design pre-visualization
    Building construction
    Revision and Renovation

    Example:
    A plumber could see all pipes with their smartphone, inside wall.
    An advanced app could guide constructors piece per piece.

  • @DADA_universe
    ... I think we should invite our constructor friends that already have experiences with Autodesk Layouts Point or BIM 360. probably they have better experiences with VR and AR. Tell our friends that they might be like IRON MAN with Godot in construction.

  • @jtm2020hyo said:
    IHMO, Godot should be used mainly in construction, their support for VR AR make a better alternative to Autodesk Layout Point , other features:

    +according to their documentation they already accept IFC

    I didn't know Godot already accepts IFC, there's definitely something to explore there. For example, you can build your project in BlenderBIM and then make it possible to interactively query some of the IFC information in a Godot build of the project (maybe in VR or AR) with nice UI. You could also make this multi-player so different members of a team can collaboratively view / manipulate this information in real time.

  • @Moult said:
    Proprietary tools like Enscape let you quickly ship a standalone executable for a client to view their building. I've used Godot to do just that - I think I took some FPS template and simply swapped out the geometry with the model.

    It wasn't as smooth though running on the PC compared to Enscape. It was also nowhere near the usability of Enscape, which allows architects to create these things with literally one click. On the plus side, custom branding, and cross platform support.

    I don't know if I shared this before elsewhere, here's a Blender add-on for working with Blender projects in Godot. It's not there yet, but it already improves the work flow considerably. With more developer love like that, I'm sure the gap between Godot and Enscape can be closed considerably, at least for quick interactive visualizations. The improved graphics coming in Godot 4 (already available in the nightly builds) won't hurt either.

    Moult
  • Oh wow, that should definitely be added to the wiki directory, that type of workflow is incredibly useful for architects.

  • @jtm2020hyo said:
    @DADA_universe
    ... I think we should invite our constructor friends that already have experiences with Autodesk Layouts Point or BIM 360. probably they have better experiences with VR and AR. Tell our friends that they might be like IRON MAN with Godot in construction.

    Oh, definitely, but we need to build several demo projects first to convince them, most of them are not early adopters, they need to see it work first! I have a VR experience I've been planning for a while now which I initially thought to build in Unity, but I'm increasingly thinking of building it in Godot now.

    jtm2020hyo
  • @Moult said:
    Oh wow, that should definitely be added to the wiki directory, that type of workflow is incredibly useful for architects.

    Done!
    (Under Visualization and Documentation)

  • @DADA_universe said:

    Done!
    (Under Visualization and Documentation)

    The link gives me 404 page. There is a / at the end...

  • edited September 2020

    @DADA_universe
    ... but we need to build several demo projects first to convince them...

    here an old video for inspiration:

    DADA_universe
  • @bitacovir said:

    @DADA_universe said:

    Done!
    (Under Visualization and Documentation)

    The link gives me 404 page. There is a / at the end...

    Thanks I fixed it.

  • @DADA_universe said:
    Done!
    (Under Visualization and Documentation)

    Now has its own page https://wiki.osarch.org/index.php?title=Blender2Godot so it can be included in the category https://wiki.osarch.org/index.php?title=Category:Blender_Add-on

    jtm2020hyoDADA_universe
  • @jtm2020hyo said:
    IHMO, Godot should be used mainly in construction, their support for VR AR make a better alternative to Autodesk Layout Point , other features:

    +according to their documentation they already accept IFC

    ........

    @jtm2020hyo did you mean to say Godot supports IFC? Do you have any reference links for this? I've searched and links to this thread keep popping up, suggesting that there's really nothing out there that connects Godot to IFC.

  • edited December 2020

    Here a small mention

    https://github.com/assimp/assimp/issues/2401

    But I remember was mentioned in their list of features. I will check it soon

    _"In godot engine, using the IFC-STEP importer conflicts with the existing clipper library because one is from 2012 and the one in godot is more recent.

    Godot uses: 6.4.2

    Assimp uses: 4.8.8"_

  • Well, probably i need retract my words or the documentatio was changed but according to this web site, is possible to install plugins to godot to import multiple 3D files including IFC

    https://www.slant.co/options/20871/alternatives/~appgamekit-vr-alternatives

  • Thanks, I've been able to find more stuff from that link
    https://github.com/assimp/assimp/issues/3281>; @jtm2020hyo said:

    Well, probably i need retract my words or the documentatio was changed but according to this web site, is possible to install plugins to godot to import multiple 3D files including IFC

    https://www.slant.co/options/20871/alternatives/~appgamekit-vr-alternatives

    Thanks, that's what I've been wondering about but there's no chatter about this out there just yet. And that's a shame because plugin development for Godot seems quite nifty. I don't know if you have a perspective on this @Moult, given you've done some things with Godot, how would you advice to go about accessing IFC data in Godot? I've tried to look at the code base for BlenderBIM just to have an idea of how you strung things together, and it's clearly got a few moving parts. While accessing ifcOpenShell in Godot would probably allow for tighter integration, is there a lower hanging fruit than can be had, maybe by exporting geometry as .glb and the meta data as ifcJSON and using a Godot plugin to reattach the geometry to the meta-data? If this could work, it would probably make sense to have an exporter in Blender (as part of BlenderBIM?) that can spit out the files Godot would need in that context. I might be asking the wrong questions, but I'm hopeful they'll manage to still tease out the right answers anyway!

  • I have unfortunately only used Godot from a pure geometry perspective and haven't had the time to play with it as a BIM viewer yet, where direct IFC interaction would be good.

  • @Moult said:
    I have unfortunately only used Godot from a pure geometry perspective and haven't had the time to play with it as a BIM viewer yet, where direct IFC interaction would be good.

    Thanks. Will keep nosing around on this!

  • edited April 17

    Hoping I'm not speaking too soon, I've had some measure of success parsing IFC through Godot. Not yet as a viewer, but at least some data is coming through.

    I have vacillated between Godot and Babylon.js as my open source webgl platform of choice to experiment with parsing ifc, and while @anders has succeeded at creating a port of ifc.js for Babylon.js and I was looking keenly into that, I found myself still drawn to Godot for a number of reasons and investigated the possibilities of parsing ifc in Godot through ifcopenshell and the python implementation in Godot, or IFC.js and the ECMA script implementation in Godot. Clearly, both are possible, but I'm only able to tinker in limited spare time, and both the Python and ECMA script implementation in Godot seemed to have a few moving parts. I even thought of a GDscript wrapper for ifcopenshell, since GDscript is Python like anyway and is native to Godot, but that's time commitment I'm not able to afford.

    Then I thought of the only other language that's officially supported in Godot: C# which I have some familiarity with having coded in C# in unity for a while. Funny enough, I never tried C# in Godot because I wanted to be handy with the native GD script. I went looking for an C# parser for IFC, found XBim was fairly mature and stable, brushed up on using C# in Godot, and bringing in C# libraries into Godot (nuget is great and simple, but you can also place dlls in the local directory), set up a basic Godot C# project, fetched XBimGeometry and XBimEssentials libraries via nuget and used the QuickStart.cs file from the XbimSamples repo as a scafold to build a test project.....some hair pulling and muffled swear words later, I had my "Hello World" working!

    Now, screenshots!

    The sample code gets all the walls in an ifc model, iterates over them and changes their names, commits the changes and saves the changed model as a separate file.

    Here's the console log from Godot showing the new names for the IFC walls being returned. I left some Json parsing I first tried in getting a grip on using C# in Godot, for no particular reason.

    I opened up the original ifc file (right) and the amended one (left) in the Xbim viewer to compare, you'll see the difference in the naming of the walls. The next step for this of course should be to be able to view the result right there in Godot.

    Here's the project folder, the second ifc file (indicated) was created after running the code in Godot.

    Code snippet of the main part of the code:

    These videos were most helpful in learning how to use C# in Godot in that order:

    1) Godot 101: C# Development Basics
    2) How to Use External C# Libraries in Godot

    Together with the Godot official documentation.

    MoultSigmaDimensions
  • edited April 17

    And the actual script (just attach it to the root node in Godot) in case anyone wants to experiment.

    It's also good to have a look at the XBim Quick Start Guide which explains the code this is built from, quite succinctly.

    If I advance this any further in any worthwhile way, then I'll create a Github repo. The Newton.Json reference and Json parsing done in there has nothing to do with ifc and only shows how to use a different library in Godot. :

    using Godot;
    using System;
    using Newtonsoft.Json;
    
    using Xbim.Ifc;
    using Xbim.Ifc4.Interfaces;
    
     public class QuickStart : Node2D
    {
            public override void _Ready()
            {
                GD.Print("Hello World");
            const string fileName = "SampleHouse.ifc";
            var editor = new XbimEditorCredentials
            {
                ApplicationDevelopersName = "You",
                ApplicationFullName = "Your app",
                ApplicationIdentifier = "Your app ID",
                ApplicationVersion = "4.0",
                //your user
                EditorsFamilyName = "Santini Aichel",
                EditorsGivenName = "Johann Blasius",
                EditorsOrganisationName = "Independent Architecture"
            };
            GD.Print(editor.ApplicationDevelopersName);
            using (var model = IfcStore.Open(fileName, editor))
            {
                using (var txn = model.BeginTransaction("Quick start transaction"))
                {
                    //get all walls in the model
                    var walls = model.Instances.OfType<IIfcWall>();
    
                    //iterate over all the walls and change them
                    foreach (var wall in walls)
                    {
                        wall.Name = "Iterated wall: " + wall.Name;
                        GD.Print(wall.Name);
                    }
                    //commit your changes
                    txn.Commit();
                }
                //save your changed model
                model.SaveAs("SampleHouse_Modified.ifc");
                GD.Print("Hello World");
                DemoClass demo = new DemoClass()
                {
                    FirstName = "Don",
                    LastName = "DADA"
                };
                string json = JsonConvert.SerializeObject(demo, Formatting.Indented);
                GD.Print(json);
            }
        }
        }
    
    StefanBoeykens
  • More on Godot.
    Two projects demonstrating Godot's potential for building productivity tools in VR, and an entire social VR platform to boot. Both projects being open source projects.

    1) Simula is a VR window manager for Linux that runs on top of Godot. It takes less than 1 minute to install:

    https://github.com/SimulaVR/Simula

    2) V-Sekai is the first fully-open source social VR platform running on the Godot Engine. It is designed as a living virtual space where you can meet people and interact in a virtual space, while leveraging the fast-growing Godot game engine to let users create any content they want and have it be immediately accessible and shareable to a growing community.
    https://v-sekai.org/about
    https://twitter.com/VSekaiOfficial

    CyrilMoult
  • This is worth a social media post! Many AEC people have heard of Unreal / Unity but never considered Godot!

  • Thanks for submitting a news article @DADA_universe ! Ping @bruno_perdigao - you can see the article in the OSArch Dashboard under Flamingo -> Inbound Messages. A quick read through + an image might be all it needs :)

  • I made a post on an abandoned blog I own and on Linkedin (which I rarely use) and tried to tag OSArch on Twitter and on Linkedin. I also contributed it as news for the OsArch website. Is there a way to let that submission process allow embedded links and photos so submissions can be richer?
    I certainly should blog more, but....... we'll see.

    @Moult said:
    This is worth a social media post! Many AEC people have heard of Unreal / Unity but never considered Godot!

  • @DADA_universe I am reading the LI post now. But all the links you have in the text are broken; actually they are all pointing in a unique inexistent url

  • edited April 18

    @Jesusbill said:
    @DADA_universe I am reading the LI post now. But all the links you have in the text are broken; actually they are all pointing in a unique inexistent url

    Arrrg! Thanks for the heads up, I will go in there and edit all the links.
    Edit: All done now, the links now work. Thanks again.

  • @DADA_universe great! Let me promote it through our LI account

    DADA_universe
Sign In or Register to comment.