{"id":17722483,"url":"https://github.com/leixingyu/mayaconnector","last_synced_at":"2025-03-14T05:31:51.993Z","repository":{"id":132642485,"uuid":"439756616","full_name":"leixingyu/mayaConnector","owner":"leixingyu","description":"Send command to Maya and stream its output","archived":false,"fork":false,"pushed_at":"2023-01-12T15:45:25.000Z","size":28,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-09T23:47:03.442Z","etag":null,"topics":["maya-python"],"latest_commit_sha":null,"homepage":"","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/leixingyu.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":"2021-12-19T02:14:25.000Z","updated_at":"2023-02-03T14:54:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"8531f87e-bdc4-40b3-b54b-87d124ed5d29","html_url":"https://github.com/leixingyu/mayaConnector","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leixingyu%2FmayaConnector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leixingyu%2FmayaConnector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leixingyu%2FmayaConnector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leixingyu%2FmayaConnector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leixingyu","download_url":"https://codeload.github.com/leixingyu/mayaConnector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243532517,"owners_count":20306151,"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","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":["maya-python"],"created_at":"2024-10-25T15:38:28.007Z","updated_at":"2025-03-14T05:31:51.981Z","avatar_url":"https://github.com/leixingyu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ch1 align=\"center\"\u003eMaya Connector\u003c/h1\u003e\n\n  \u003cp align=\"center\"\u003e\n    An external tool capable of sending command to Maya and stream its output\n    \u003cbr /\u003e\n    \u003ca href=\"https://youtu.be/kVdCGMWfJdE\"\u003eDemo\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## About The Project\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://i.imgur.com/89SJibG.gif\" alt=\"maya-connector\" width=\"100%\"/\u003e\n\u003c/div\u003e\n\nAlthough there are a lot of tools that can run internally in Maya which facilitate\nthe pipeline. The capability of communicating (monitor and control) with Maya externally is very handy.\n\nI covered the development of this tool in more detailed here: \n[Part 1](https://www.xingyulei.com/post/maya-commandport/) |\n[Part 2](https://www.xingyulei.com/post/maya-streaming/).\n\nThis tool has two major components:\n1. command port: sending commands to maya to execute\n2. output streaming: actively listening/receiving maya outputs\n\n## Getting Started\n\n### Prerequisites\n\n- [Qt](https://github.com/mottosso/Qt.py): a module that supports different\npython qt bindings\n\n   or alternatively, change the code below to whatever qt binding you have on your machine.\n   ```python\n   from Qt import QtWidgets, QtCore, QtGui\n   from Qt import _loadUi\n   ```\n\n### Launch\n\n1. Unzip the **maya-connector** package\n\n2. Launch Maya and open port `5050`:\n    ```python\n    import maya.cmds as cmds\n    port = 5050\n    if not cmds.commandPort(\":{}\".format(port), query=True):\n        cmds.commandPort(name=\":{}\".format(port))\n    ```\n\n3. Run `main.py` through `mayapy` or `python` externally\n4. Click the **connect** button to establish streaming connection\n5. Use the tool like an external script editor\n\n\n## Features\n\n- code editor with syntax highlighting and line counter\n- save/open script\n- execute selected script or all\n- clear viewport\n\n## Reference\n\n[Google Group - Receiving data from commandPort](https://groups.google.com/g/python_inside_maya/c/7AgWlldtvbE/m/zUTQlAcjBgAJ?pli=1)\n\n[Stack Overflow - c socket programming, only receiving one line at a time](https://stackoverflow.com/questions/10434525/c-socket-programming-only-receiving-one-line-at-a-time)\n\n[CG Talk - Telnet or Socket: no result back from Maya](https://forums.cgsociety.org/t/telnet-or-socket-no-result-back-from-maya/1730817/2)\n\n[Youtube - Python Socket Programming Tutorial](https://youtu.be/3QiPPX-KeSc)\n\n[Maya Help - OpenMaya.MCommandMessage Class Reference](https://help.autodesk.com/view/MAYAUL/2016/ENU/?guid=__py_ref_class_open_maya_1_1_m_command_message_html)\n\n[Google Groups - Extracting data from Output Window](https://groups.google.com/g/python_inside_maya/c/pp_E7rCs7d0)\n\n[Github - MayaCharm](https://github.com/cmcpasserby/MayaCharm)\n\n[Github - MayaSublime](https://github.com/justinfx/MayaSublime/)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleixingyu%2Fmayaconnector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleixingyu%2Fmayaconnector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleixingyu%2Fmayaconnector/lists"}