{"id":25013954,"url":"https://github.com/adn-devtech/3dsmax-python-howtos","last_synced_at":"2025-08-10T06:40:46.494Z","repository":{"id":43096327,"uuid":"248011397","full_name":"ADN-DevTech/3dsMax-Python-HowTos","owner":"ADN-DevTech","description":"3ds Max python samples","archived":false,"fork":false,"pushed_at":"2024-04-05T12:36:59.000Z","size":1754,"stargazers_count":247,"open_issues_count":7,"forks_count":53,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-05-20T05:02:18.563Z","etag":null,"topics":["3ds","3dsmax","howto","maxscript","pymxs","python","python3","sample"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ADN-DevTech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-17T15:53:55.000Z","updated_at":"2025-05-14T15:13:14.000Z","dependencies_parsed_at":"2024-04-02T17:54:42.234Z","dependency_job_id":"83d66d99-3368-4122-a0c0-59056fbca167","html_url":"https://github.com/ADN-DevTech/3dsMax-Python-HowTos","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ADN-DevTech/3dsMax-Python-HowTos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADN-DevTech%2F3dsMax-Python-HowTos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADN-DevTech%2F3dsMax-Python-HowTos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADN-DevTech%2F3dsMax-Python-HowTos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADN-DevTech%2F3dsMax-Python-HowTos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ADN-DevTech","download_url":"https://codeload.github.com/ADN-DevTech/3dsMax-Python-HowTos/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADN-DevTech%2F3dsMax-Python-HowTos/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269687961,"owners_count":24459395,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3ds","3dsmax","howto","maxscript","pymxs","python","python3","sample"],"created_at":"2025-02-05T07:17:01.044Z","updated_at":"2025-08-10T06:40:46.294Z","avatar_url":"https://github.com/ADN-DevTech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 3ds Max Python How Tos\n### Practical Python 3 Development Examples For 3ds Max\n\n![Splash](/doc/Splash.png)\n\nThis repo contains various Python programming examples and tutorials targeting [3ds Max](https://www.autodesk.ca/en/products/3ds-max/overview).\n\nAll the examples in the tutorials are implemented as pip packages. This is a bit heavy for\nsmall things (we provide a setup.py, a LICENSE and everything) but makes things installable\nand shareable more easily. As soon as something has dependencies on external packages or requires\nmore than one Python file, pip packages become very convenient. Because we think it is a good\npractice to package 3ds Max Python tools with pip, we provide all our examples in this form.\n\n## Installation\n\nIt is not necessary to install the HowTos: the repo can simply be used as a passive\ndirectory of samples and documentation for Python developers.\n\n- Installing the HowTos will add menu items to 3ds Max, and is documented [here](doc/install.md)\n- After an update from github it is necessary to rerun install scripts to get everything \nworking as expected\n\n\n## Python How Tos\n\n### New content\n\n- New with 3dsMax 2025: [Plugin Packages in 2025 and Integration With the New Menu System](/doc/pluginpackage.md)\n\n### Samples\n\nThe samples below are translations of [MAXScript How Tos](https://help.autodesk.com/view/MAXDEV/2022/ENU/?guid=GUID-25C9AD58-3665-471E-8B4B-54A094C1D5C9) that\ncan be found in the 3ds Max online documentation.\n\nThe conversion from MaxScript to Python could have been more mechanical but we chose to implement\nthe Python version in the best Python way known to us. An example of this is that we use PySide\n(Qt) for the UI as much as possible instead of using more traditional 3ds Max ui mechanisms.\n\n*How To?*\n\n- Develop a Transform Lock Script [transformlock](/src/packages/transformlock/README.md)\n- Remove all materials [removeallmaterials](/src/packages/removeallmaterials/README.md)\n- Quickly rename selected objects [renameselected](/src/packages/renameselected/README.md)\n- Output Object Data to File [speedsheet](/src/packages/speedsheet/README.md)\n- Create a quick video preview [quickpreview](/src/packages/quickpreview/README.md)\n- Access the Z-Depth Channel [zdepthchannel](/src/packages/zdepthchannel/README.md)\n\n## Python Examples that don't come from maxscript howtos\n\n- Update a progressbar from a Python thread [threadprogressbar](/src/packages/threadprogressbar/README.md)\n- Create a single instance modal dialog [singleinstancedlg](/src/packages/singleinstancedlg/README.md)\n- Add menu items to open documentation pages in the web browser [inbrowserhelp](/src/packages/inbrowserhelp/README.md)\n- Integrate a Python Console [pyconsole](/src/packages/pyconsole/README.md)\n- Run code on thre main thread [mxthread](/src/packages/mxthread/README.md)\n- Automatically convert maxscript to python [mxs2py](/src/packages/mxs2py/README.md)\n- Use socketio from 3dsMax [socketioclient](/src/packages/socketioclient/README.md)\n- Drop maxscript code on a rich text window to get a python translation [mxstranslate](/src/packages/mxstranslate/README.md) \n\n## Python Samples\n\nPython samples can be found in [src/samples](/src/samples). These samples may already be in your 3ds Max\ninstallation directories.\n\n## 3dsMax startup entry point\n\n[pystartup](/src/pystartup/README.md) provides the maxscript code that, when copied to 3ds Max's\nstartup directory, will automatically launch pip packages with the 3dsMax startup\nentry point.\n\n## Tools\n\nThe following packages are not really examples but Python tools.\n\n- [menuhook](/src/packages/menuhook/README.md) is not meant to be an example (but is still interesting as such!) but\nas a way of attaching Python functions to 3ds Max menu items. The menuhook package is used by \nmost of the other samples.\n\n- [realoadmod](/src/packages/reloadmod/README.md) is small tool that will reload all development modules in one\noperation\n\n- [mxvscode](/src/packages/mxvscode/README.md) is a small tool that will automatically import debugpy (the\nVSCode debugging interface) during the startup of 3ds Max and make it accept remote connections.\nThis may slow down the startup of 3ds Max quite a bit and is meant as a developer-only tool.\n\n## Extra Goodies\n\n- [install.sh](install.sh) will install pip, install pystartup and pip install all the samples\n- [uninstall.sh](uninstall.sh) will uninstall what was installed with install.sh\n- [installstartup.sh](installstartup.sh) will install pip and pystartup and nothing more\n- [installhowtos.sh](installhowtos.sh) will install only the howtos (works in a virtual env)\n- [checks.sh](/scripts/checks.sh) runs pylint on the code, validates that 3ds Max is named properly,\nvalidates that code blocks in markdown always specify the programming language, checks that\nall links are valid in all markdown files of the repo\n- [create.sh](/scripts/create.sh) will generate an empty pip package in the current working directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadn-devtech%2F3dsmax-python-howtos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadn-devtech%2F3dsmax-python-howtos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadn-devtech%2F3dsmax-python-howtos/lists"}