{"id":5531,"date":"2025-03-27T17:46:20","date_gmt":"2025-03-27T17:46:20","guid":{"rendered":"https:\/\/castle-engine.io\/wp\/?p=5531"},"modified":"2025-03-27T17:46:20","modified_gmt":"2025-03-27T17:46:20","slug":"collaborative-online-editing-of-3d-world-using-castle-game-engine-and-mormot2","status":"publish","type":"post","link":"https:\/\/castle-engine.io\/wp\/2025\/03\/27\/collaborative-online-editing-of-3d-world-using-castle-game-engine-and-mormot2\/","title":{"rendered":"Collaborative online editing of 3D world using Castle Game Engine and mORMot2"},"content":{"rendered":"<table class=\"thumbnails thumbnails-align-right\"><tr><td>\n          <a href=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2025\/03\/Zrzut-ekranu-z-2025-03-27-18-36-46.png\"\n             class=\"screenshot\"\n             title=\"Castle Game Engine and mORMot 2\"><img loading=\"lazy\" decoding=\"async\"\n            style=\"float: right\"\n            src=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2025\/03\/Zrzut-ekranu-z-2025-03-27-18-36-46-200x102.png\"\n             width=\"200\" height=\"102\" \n            alt=\"Castle Game Engine and mORMot 2\"\n          ><\/a><\/td><\/tr><tr><td>\n          <a href=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2025\/03\/screenshot1.png\"\n             class=\"screenshot\"\n             title=\"Castle Game Engine and mORMot 2\"><img loading=\"lazy\" decoding=\"async\"\n            style=\"float: right\"\n            src=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2025\/03\/screenshot1-200x117.png\"\n             width=\"200\" height=\"117\" \n            alt=\"Castle Game Engine and mORMot 2\"\n          ><\/a><\/td><\/tr><tr><td>\n          <a href=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2025\/03\/screenshot3.png\"\n             class=\"screenshot\"\n             title=\"Castle Game Engine and mORMot 2\"><img loading=\"lazy\" decoding=\"async\"\n            style=\"float: right\"\n            src=\"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2025\/03\/screenshot3-200x117.png\"\n             width=\"200\" height=\"117\" \n            alt=\"Castle Game Engine and mORMot 2\"\n          ><\/a><\/td><\/tr><\/table>\n<p>We&#8217;re happy to announce a new demo project, showcasing our <a href=\"https:\/\/castle-engine.io\/\">Castle Game Engine<\/a> and <a href=\"https:\/\/github.com\/synopse\/mORMot2\/\">mORMot 2<\/a> working together!<\/p>\n<p><em>mORMot<\/em> (1 and 2) is an open-source Pascal framework (just like our engine!) providing networking and database solutions, at a few layers. You can use it for ORM (easily synchronize and persist objects), classic client-server (HTTP REST communication), peer-to-peer communication (like WebSockets), database access and many other things.<\/p>\n<p>We present a demo showcasing that <em>Castle Game Engine<\/em> and <em>mORMot 2<\/em> can cooperate seamlessly, and together achieve something really cool:<\/p>\n<p><a href=\"https:\/\/github.com\/castle-engine\/castle-and-mormot-collaborative-editing\/\">https:\/\/github.com\/castle-engine\/castle-and-mormot-collaborative-editing\/<\/a><\/p>\n<p>The demo presents a collaborative editing of 3D world. Features:<\/p>\n<ul>\n<li>Multiple clients can edit a 3D world online.<\/li>\n<li>It&#8217;s synchronized using ORM with a server.<\/li>\n<li>The server in turn stores the world contents in a database (so it survives server restarts).<\/li>\n<li>Each client can add, remove, modify (move, rotate, scale) 3D objects in the world.<\/li>\n<li>The changes are immediately visible to all other clients.<\/li>\n<li><em>mORMot 2<\/em> takes care of all the network communication and database persistence.<\/li>\n<li><em>Castle Game Engine<\/em> takes care of displaying: showing and updating the 3D world, allowing user to move\/rotate\/scale by nice gizmos (using <code><a href=\"https:\/\/castle-engine.io\/apidoc\/html\/CastleTransformManipulate.html\">CastleTransformManipulate<\/a><\/code>), allowing camera movement in 3D.<\/li>\n<\/ul>\n<p>Instructions to build and run the demo are in the <a href=\"https:\/\/github.com\/castle-engine\/castle-and-mormot-collaborative-editing\/blob\/master\/README.md\">README file<\/a>. You will need the latest <em>Castle Game Engine<\/em> and <a href=\"https:\/\/github.com\/synopse\/mORMot2\/\">mORMot 2<\/a>. Latest versions, from GIT master branches of both projects, have been tested today.<\/p>\n<p>In related news, we have recently updated our URL and networking documentation, and this was a great moment to mention mORMot at the latter. Check out new:<\/p>\n<ul>\n<li><a href=\"https:\/\/castle-engine.io\/url\">URLs, loading (downloading) and saving<\/a><\/li>\n<li><a href=\"https:\/\/castle-engine.io\/multi_player\">Multi-player (networking) options<\/a><\/li>\n<\/ul>\n<p>Enjoy, and as always &#8212; any feedback is welcome!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re happy to announce a new demo project, showcasing our Castle Game Engine and mORMot 2 working together! mORMot (1 and 2) is an open-source Pascal framework (just like our engine!) providing networking and database solutions, at a few layers. You can use it for ORM (easily synchronize and persist objects), classic client-server (HTTP REST &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/castle-engine.io\/wp\/2025\/03\/27\/collaborative-online-editing-of-3d-world-using-castle-game-engine-and-mormot2\/\" class=\"more-link\">Continue reading  \u27a4<span class=\"screen-reader-text\"> &#8220;Collaborative online editing of 3D world using Castle Game Engine and mORMot2&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":5533,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"publish_to_discourse":"1","publish_post_category":"9","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"6461","discourse_permalink":"https:\/\/forum.castle-engine.io\/t\/collaborative-online-editing-of-3d-world-using-castle-game-engine-and-mormot2\/1840","wpdc_publishing_response":"","wpdc_publishing_error":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-5531","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/castle-engine.io\/wp\/wp-content\/uploads\/2025\/03\/Zrzut-ekranu-z-2025-03-27-18-36-46.png","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9IgYW-1rd","jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/posts\/5531","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/comments?post=5531"}],"version-history":[{"count":8,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/posts\/5531\/revisions"}],"predecessor-version":[{"id":5542,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/posts\/5531\/revisions\/5542"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/media\/5533"}],"wp:attachment":[{"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/media?parent=5531"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/categories?post=5531"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/castle-engine.io\/wp\/wp-json\/wp\/v2\/tags?post=5531"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}