{"id":2379,"date":"2022-09-23T11:01:23","date_gmt":"2022-09-23T11:01:23","guid":{"rendered":"https:\/\/3dcoat.com\/documentation\/?post_type=manual_documentation&#038;p=2379"},"modified":"2025-05-31T10:52:53","modified_gmt":"2025-05-31T10:52:53","slug":"scripting-and-core-api","status":"publish","type":"manual_documentation","link":"https:\/\/3dcoat.com\/documentation\/manual\/scripting-and-core-api\/","title":{"rendered":"Scripting & Core API"},"content":{"rendered":"\n<p>Programming is the process of creating a set of instructions that tell a computer how to perform a task.<br \/>You can manage 3D\u0421oat features with the help of scripting.<br \/>Run or create new commands using scripting or compiling them by accessing <a href=\"https:\/\/pilgway.com\/files\/3dcoat\/PythonAPI\/index.html\">the Core&nbsp;API<\/a>.<\/p>\n\n\n\n<p>The start is quite easy. Just use&nbsp;<strong><em>Scripts Menu<\/em>&nbsp;\u2192&nbsp;<em>Create your Script<\/em><\/strong>&nbsp;or&nbsp;<strong><em>Create a new Core&nbsp;<abbr title=\"\">API<\/abbr>&nbsp;script<\/em><\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"234\" height=\"230\" src=\"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2023\/06\/Scripts-1.jpg\" alt=\"\" class=\"wp-image-6206\"\/><\/figure>\n<\/div>\n\n\n<p>The new <a href=\"https:\/\/pilgway.com\/files\/3dcoat\/PythonAPI\/index.html\">Python API<\/a> is compatible with the old one, so old scripts should work except for rooms. <br \/>In the new API, everything is based on python modules where the script is interpreted only at the first import, then the byte code is executed. <br \/>It became possible to write your own extensions that can interact with any other modules (with each other and with the room in). <br \/>We will publish <a href=\"https:\/\/pilgway.com\/files\/3dcoat\/PythonAPI\/index.html\">documentation<\/a> and video tutorials a little later.&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/3dcoat.com\/documentation\/manual\/scripting-core-api\/scripting-and-core-api\/\"><strong>Scripts Menu<\/strong><\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>&#8211;&nbsp;<strong>Scripting<\/strong>&nbsp;is a series of commands that can be executed without compiling.<br \/>When we select a tool or execute a function, we execute a command already included in the program. Creating a script allows us to combine these commands to automatically execute a series of steps that speed up our work.<\/p>\n\n\n\n<p>&#8211;&nbsp;<strong>Core&nbsp;<abbr title=\"\">API<\/abbr><\/strong>&nbsp;(Application Programming Interface) is not just the scripting; the code you write runs at the full speed of compiled C++.<br \/>It is a powerful method to extend the 3DCoat&#8217;s functionality. You may automate the job or add principally new tools.<\/p>\n\n\n\n<p>&#8211;&nbsp;<strong>Python API<\/strong> is very similar to the C++ Core API, but has its own advantages and drawbacks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"scripting\">Scripting<a href=\"https:\/\/3dcoat.com\/dokuwiki\/doku.php?id=general:scripting#scripting\"><\/a><\/h3>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button aligncenter\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/pilgway.com\/files\/scriptdocs\/\" target=\"_blank\" rel=\"noreferrer noopener\">3DCoat Scripting manual<\/a><\/div>\n<\/div>\n\n\n\n<p>AngelScript does not work on Apple Silicon and is deprecated.<br \/>At the beginning 3DCoat uses&nbsp;<a href=\"https:\/\/www.angelcode.com\/angelscript\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">AngelScript<\/a>, which is a C++-like language. The script is a text file with commands executed in a personal order.<\/p>\n\n\n\n<p>That command can be known by recording it in memory by pressing over the function RMB+MMB simultaneously. <br \/>Opening a notepad and pasting it, we will obtain the text of the corresponding command. <br \/>It is helpful to view and edit it in Notepad++ (choose \u201cC\u201d syntax). Then run the script via the file menu \u201cScripts \/ Run Script\u201d.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"core_api\">Core API<a href=\"https:\/\/3dcoat.com\/dokuwiki\/doku.php?id=general:scripting#core_api\"><\/a><\/h3>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button aligncenter\"><a class=\"wp-block-button__link wp-element-button\" href=\"http:\/\/pilgway.com\/files\/3dcoat\/CoreAPI\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">Core API manual introduction<\/a><\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>The Core&nbsp;API&nbsp;is a powerful method to extend the 3DCoat&#8217;s functionality. You may automate the job or add principally new tools.<br \/>This is not just the scripting; the code you write runs at the full speed of compiled C++.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Core&nbsp;API&nbsp;script is a compliable C++17 program that works on the full native C++ speed. This is far more than just a script; you may make even time-critical and multithreaded tasks and customize the 3DCoat in-depth, creating principally new functionality and tools.<\/p>\n\n\n\n<p>But the whole process is completely transparent for you. You don&#8217;t need to configure anything or manage complex project configurations. 3DCoat will lead you through the whole process with a simple wizard.<\/p>\n\n\n\n<p>* Core&nbsp;API&nbsp;works correctly for users with non-English user names, all the installing process is now super easy.<\/p>\n\n\n\n<p>* The CoreAPI compiling process changed essentially.&nbsp;<strong>Now only Visual Studio is <\/strong>used; no need for clang-cl. It simplifies usage because you need to install only one additional software, not two as before. The download and install process is completely automated.<\/p>\n\n\n\n<p>* Core&nbsp;API&nbsp;supports colored voxels as well.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Python API<\/h3>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-left wp-element-button\" href=\"https:\/\/pilgway.com\/files\/3dcoat\/PythonAPI\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">Python API manual introduction<\/a><\/div>\n<\/div>\n\n\n\n<p>Python is primarily an architectural solution and a standard for the CG industry Good python support will allow you to write almost any plugins and integrate into working pipelines with other software. <\/p>\n\n\n\n<p>The 3DCoat Python API is intended to trigger UI commands, operate over the scene, and create new tools. It is very similar to the C++ Core API, but has its own advantages and drawbacks.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No need for any additional setup to make your scripts; Python is embedded into the 3DCoat distributive.<\/li>\n\n\n\n<li>Python is like a Swiss-knife, allowing you to bring the whole power of Python libraries into 3DCoat.<\/li>\n\n\n\n<li>Python is much slower than C++, so it may be used only for general management, not for deep and complex algorithms.<\/li>\n\n\n\n<li>If you are already familiar with the C++ Core API, the Python API is very similar, almost 1:1, with the same logic and function names.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"how_to_begin\">How to begin?<a href=\"https:\/\/3dcoat.com\/dokuwiki\/doku.php?id=general:scripting#how_to_begin\"><\/a><\/h4>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>The start is quite easy. Just use Scripts\u2192Create new Core&nbsp;API&nbsp;script<br \/>Then choose the template, and choose a path for your project.<\/p>\n\n\n\n<p>If Visual Studio (or Visual Studio Code) is installed, it will start with your new file. Each example is well documented and uses relatively simple syntax, so it is easy to understand from easy to complex.<\/p>\n\n\n\n<p>Read all the commands in <a href=\"https:\/\/3dcoat.com\/docs\/3dcoat\/Form.php?name=OptForm&amp;ID=OPTIONS&amp;section=1&amp;lang=English\" target=\"_blank\" rel=\"noreferrer noopener\">this document<\/a>.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote has-background is-layout-flow wp-block-quote-is-layout-flow\" style=\"background-color:#f1f1f1\">\n<p>You don&#8217;t need to set any standard syntax in VStudio.\nJust type code and execute in 3DCoat, not in Visual Studio.\nVStudio is just like a text editor there that may show hints and help while coding.\nWrite your code on VStudio and save the *.cpp, open it in 3DC and it automatically runs.<\/p>\n<\/blockquote>\n\n\n\n<p><em><strong>Examples<\/strong><\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>Looking at the Examples is the best way to understand the&nbsp;API.<\/p>\n\n\n\n<p>Use <em>Scripts\u2192Create a new Core&nbsp;API&nbsp;script<\/em> to experiment with that examples.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":5,"template":"","manualdocumentationcategory":[9],"manual_doc_tag":[],"class_list":["post-2379","manual_documentation","type-manual_documentation","status-publish","hentry","manualdocumentationcategory-manual"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Scripting &amp; Core API - 3DCoat Documentation<\/title>\n<meta name=\"description\" content=\"You can manage 3D\u0421oat features with help of scripting.Run or create new commands using scripting or compiling them by accessing the Core\u00a0API\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/3dcoat.com\/documentation\/manual\/scripting-and-core-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Scripting &amp; Core API - 3DCoat Documentation\" \/>\n<meta property=\"og:description\" content=\"You can manage 3D\u0421oat features with help of scripting.Run or create new commands using scripting or compiling them by accessing the Core\u00a0API\" \/>\n<meta property=\"og:url\" content=\"https:\/\/3dcoat.com\/documentation\/manual\/scripting-and-core-api\/\" \/>\n<meta property=\"og:site_name\" content=\"3DCoat Documentation\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/3DCoat\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-31T10:52:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2023\/06\/Scripts-1.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@3DCoatOfficial\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/\",\"url\":\"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/\",\"name\":\"Scripting & Core API - 3DCoat Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/3dcoat.com\/documentation\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2023\/06\/Scripts-1.jpg\",\"datePublished\":\"2022-09-23T11:01:23+00:00\",\"dateModified\":\"2025-05-31T10:52:53+00:00\",\"description\":\"A 3D\u0421oat funkci\u00f3it szkriptel\u00e9s seg\u00edts\u00e9g\u00e9vel kezelheti. Futtasson vagy hozzon l\u00e9tre \u00faj parancsokat szkripttel, vagy ford\u00edtsa le azokat a Core API el\u00e9r\u00e9s\u00e9vel\",\"breadcrumb\":{\"@id\":\"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/#primaryimage\",\"url\":\"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2023\/06\/Scripts-1.jpg?wsr\",\"contentUrl\":\"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2023\/06\/Scripts-1.jpg?wsr\",\"width\":234,\"height\":230},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/3dcoat.com\/documentation\/nl_NL\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Scripting & Core API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/3dcoat.com\/documentation\/#website\",\"url\":\"https:\/\/3dcoat.com\/documentation\/\",\"name\":\"3DCoat Documentation\",\"description\":\"Information about starting to use and learning how to use all the features of the 3DCoat.\",\"publisher\":{\"@id\":\"https:\/\/3dcoat.com\/documentation\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/3dcoat.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/3dcoat.com\/documentation\/#organization\",\"name\":\"Pilgway\",\"url\":\"https:\/\/3dcoat.com\/documentation\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/3dcoat.com\/documentation\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2022\/09\/logo3DCoatWhite-1.png\",\"contentUrl\":\"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2022\/09\/logo3DCoatWhite-1.png\",\"width\":876,\"height\":190,\"caption\":\"Pilgway\"},\"image\":{\"@id\":\"https:\/\/3dcoat.com\/documentation\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/3DCoat\",\"https:\/\/x.com\/3DCoatOfficial\",\"https:\/\/www.youtube.com\/c\/PILGWAY3DCoat\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Scripting & Core API - 3DCoat Documentation","description":"You can manage 3D\u0421oat features with help of scripting.Run or create new commands using scripting or compiling them by accessing the Core\u00a0API","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/3dcoat.com\/documentation\/manual\/scripting-and-core-api\/","og_locale":"en_US","og_type":"article","og_title":"Scripting & Core API - 3DCoat Documentation","og_description":"You can manage 3D\u0421oat features with help of scripting.Run or create new commands using scripting or compiling them by accessing the Core\u00a0API","og_url":"https:\/\/3dcoat.com\/documentation\/manual\/scripting-and-core-api\/","og_site_name":"3DCoat Documentation","article_publisher":"https:\/\/www.facebook.com\/3DCoat","article_modified_time":"2025-05-31T10:52:53+00:00","og_image":[{"url":"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2023\/06\/Scripts-1.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_site":"@3DCoatOfficial","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/","url":"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/","name":"Scripting & Core API - 3DCoat Documentation","isPartOf":{"@id":"https:\/\/3dcoat.com\/documentation\/#website"},"primaryImageOfPage":{"@id":"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/#primaryimage"},"image":{"@id":"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/#primaryimage"},"thumbnailUrl":"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2023\/06\/Scripts-1.jpg","datePublished":"2022-09-23T11:01:23+00:00","dateModified":"2025-05-31T10:52:53+00:00","description":"A 3D\u0421oat funkci\u00f3it szkriptel\u00e9s seg\u00edts\u00e9g\u00e9vel kezelheti. Futtasson vagy hozzon l\u00e9tre \u00faj parancsokat szkripttel, vagy ford\u00edtsa le azokat a Core API el\u00e9r\u00e9s\u00e9vel","breadcrumb":{"@id":"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/#primaryimage","url":"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2023\/06\/Scripts-1.jpg?wsr","contentUrl":"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2023\/06\/Scripts-1.jpg?wsr","width":234,"height":230},{"@type":"BreadcrumbList","@id":"https:\/\/3dcoat.com\/documentation\/hu_HU\/manual\/scripting-and-core-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/3dcoat.com\/documentation\/nl_NL\/"},{"@type":"ListItem","position":2,"name":"Scripting & Core API"}]},{"@type":"WebSite","@id":"https:\/\/3dcoat.com\/documentation\/#website","url":"https:\/\/3dcoat.com\/documentation\/","name":"3DCoat Documentation","description":"Information about starting to use and learning how to use all the features of the 3DCoat.","publisher":{"@id":"https:\/\/3dcoat.com\/documentation\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/3dcoat.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/3dcoat.com\/documentation\/#organization","name":"Pilgway","url":"https:\/\/3dcoat.com\/documentation\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/3dcoat.com\/documentation\/#\/schema\/logo\/image\/","url":"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2022\/09\/logo3DCoatWhite-1.png","contentUrl":"https:\/\/3dcoat.com\/documentation\/wp-content\/uploads\/2022\/09\/logo3DCoatWhite-1.png","width":876,"height":190,"caption":"Pilgway"},"image":{"@id":"https:\/\/3dcoat.com\/documentation\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/3DCoat","https:\/\/x.com\/3DCoatOfficial","https:\/\/www.youtube.com\/c\/PILGWAY3DCoat"]}]}},"_links":{"self":[{"href":"https:\/\/3dcoat.com\/documentation\/wp-json\/wp\/v2\/manual_documentation\/2379","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/3dcoat.com\/documentation\/wp-json\/wp\/v2\/manual_documentation"}],"about":[{"href":"https:\/\/3dcoat.com\/documentation\/wp-json\/wp\/v2\/types\/manual_documentation"}],"author":[{"embeddable":true,"href":"https:\/\/3dcoat.com\/documentation\/wp-json\/wp\/v2\/users\/3"}],"version-history":[{"count":24,"href":"https:\/\/3dcoat.com\/documentation\/wp-json\/wp\/v2\/manual_documentation\/2379\/revisions"}],"predecessor-version":[{"id":12145,"href":"https:\/\/3dcoat.com\/documentation\/wp-json\/wp\/v2\/manual_documentation\/2379\/revisions\/12145"}],"wp:attachment":[{"href":"https:\/\/3dcoat.com\/documentation\/wp-json\/wp\/v2\/media?parent=2379"}],"wp:term":[{"taxonomy":"manualdocumentationcategory","embeddable":true,"href":"https:\/\/3dcoat.com\/documentation\/wp-json\/wp\/v2\/manualdocumentationcategory?post=2379"},{"taxonomy":"manual_doc_tag","embeddable":true,"href":"https:\/\/3dcoat.com\/documentation\/wp-json\/wp\/v2\/manual_doc_tag?post=2379"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}