Castle Game Engine supports now IFC

edited March 16 in General

Hello everyone!

I'm project lead of Castle Game Engine, an open-source 3D and 2D game engine with a visual editor, powerful API, using modern Object Pascal. I wanted to announce a new feature in our engine: we support now the IFC model format!

Not just for games :) -- our engine and tools can be used for general applications, like 3D visualizations, as well.

  • I just made a new video describing new features of our engine, with IFC support in particular (IFC topic begins at 25:40 in this video, first part of the video describes our new web target):

  • Everything has been documented, with some screenshots, on https://castle-engine.io/ifc . In short:

    • We can open, save IFC files.
    • We can edit IFC files.
    • We can "think" using IFC concepts, with our Pascal classes and properties that correspond 1-1 to IFC concepts. So we have "native IFC" in Castle Game Engine and Pascal.
    • We can also convert between X3D, glTF -> IFC, or IFC -> X3D.
  • Our model viewer, https://castle-engine.io/castle-model-viewer (the "snapshot", 5.3.0 version) supports now viewing IFC files and can be used to perform above conversions.

  • We have a new example application https://github.com/castle-engine/castle-engine/tree/master/examples/ifc showcasing working using "native IFC" approach, editing the model by adding/manipulating IFC classes.

This is an initial announcement, and we have a number of ideas how to improve the support. For one thing, we want to support more IFC features (more classes, STEP encoding). We also want to optimize various changes, some IFC changes could be more "instantly applied" than they are now. We also want to improve tooling -- our mobile model viewer ( https://castle-engine.io/castle-model-viewer-mobile ) should have a new release soon with IFC support too.

I welcome all the feedback, tests and comments from everyone working with IFC. Thank you in advance!

Moultfalken10vdlNigelMassimobrunopostleatomkarincasteverugiduarteframossemhustejJohnand 2 others.

Comments

  • This is awesome! I guess this means there is now a native IFC Pascal option for the industry! Perhaps worth adding here? https://wiki.osarch.org/index.php?title=Free_software_libraries_for_AEC_software_development

    One of the usecases of the AEC industry is taking an IFC model and visualising it either in an interactive or pretty way especially with people who are intimidated by a full authoring app (Blender/FreeCAD). Proprietary equivalents are things like Enscape, Fuzor, Twinmotion. I guess the first point of call would be something Godot based, or something on the web like Xeokit / Babylon, but there is a long way to go for usability and integration. What role do you think the Castle Engine can play in the AEC industry?

    BTW I noticed you were implementing functions to do various aspects of IFC authoring. If you'd like, you can copy paste our API design :) https://docs.ifcopenshell.org/autoapi/ifcopenshell/api/index.html#module-ifcopenshell.api

    steverugiBedsonmichalisduarteframosJohn
  • @Moult said:
    This is awesome! I guess this means there is now a native IFC Pascal option for the industry! Perhaps worth adding here? https://wiki.osarch.org/index.php?title=Free_software_libraries_for_AEC_software_development

    Thank you for the good words!

    As for https://wiki.osarch.org/index.php?title=Free_software_libraries_for_AEC_software_development , should I just create an account on this Wiki and add there "Castle Game Engine" myself, or is this something admins on the Wiki do?

    I tested creating an account on https://wiki.osarch.org/ , but it responds with error "Your IP address is listed as an open proxy in the DNSBL used by Wiki.OSArch. You cannot create an account. " This happens with both my home IP, and when I come through VPN. Not sure if this issue is specific to me and I should try harder (different VPN?) or maybe one cannot create accounts on this wiki.

    One of the usecases of the AEC industry is taking an IFC model and visualising it either in an interactive or pretty way especially with people who are intimidated by a full authoring app (Blender/FreeCAD). Proprietary equivalents are things like Enscape, Fuzor, Twinmotion. I guess the first point of call would be something Godot based, or something on the web like Xeokit / Babylon, but there is a long way to go for usability and integration. What role do you think the Castle Engine can play in the AEC industry?

    Our use-cases are in 2 categories:

    1. One use-case, and this was our core reason for implementing this, is to allow to visualize and manipulate IFC in Castle Game Engine, together with our other 3D formats and features. So you have lights, real-time shadows, shader effects, mirrors, you can compose larger worlds in our editor combining IFC, glTF, X3D and other model formats. And you have nice API to access everything -- both the IFC classes, and the CGE concepts (TCastleViewport, TCastleScene etc. ).

    2. Another use-case(s) is that we feature viewers and converters. So

    As for comparisons:

    • We are an open-source game engine, thus can play a similar role to Godot :) We are a smaller project than Godot (right now :) ), but we offer nice rendering, comfort of use (editor), and support for 3D standards (IFC, glTF, X3D). I don't dare comparing Castle Game Engine to much-larger Godot, there are many details that differ, but also many similarities :) Everyone is welcome to try us out and see do we "fit".

    • And we have a web target (though it's still a work-in-progress!), so in a way we also can play a similar role as Babylon.js . Our prerelease of "Castle Model Viewer" for web already can visualize an IFC model (through there are some TODOs -- performance of this model on the web is poor, and we cannot yet open arbitrary files; well, web is work-in-progress still :) ).

    BTW I noticed you were implementing functions to do various aspects of IFC authoring. If you'd like, you can copy paste our API design :) https://docs.ifcopenshell.org/autoapi/ifcopenshell/api/index.html#module-ifcopenshell.api

    Oh, I was already looking at IfcOpenShell API (and, from user-side, BonsaiBIM capabilities) :) This does guide various decisions in our API.

    atomkarincaJohn
Sign In or Register to comment.