ibois-epfl / script-sync

Rhino/Grasshopper/VSCode plug-in to run C# and Python (IronPython or CPython) scripts directly from VSCode.

Home Page:https://www.food4rhino.com/en/app/script-sync

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

script-sync

What is it? Script-sync plug-in to run C# and Python (IronPython or CPython) scripts directly from VSCode into Rhino and Grasshopper. This project is a research utility from the IBOIS lab at EPFL. It was developed and currently maintained by Andrea Settimi.

Why Script-sync? Although Rhino8 has a wonderful IDE, we often miss the nice extensions and functions of a full-fledged IDE like VSCode. Script-sync allows you to run your scripts directly from VSCode, while keeping the Rhino/Grasshopper environment open. This is particularly useful if you have AI-assisted (e.g. GithubCoPilot) code completion.

You can execute the folloing languages from VSCode with script-sync:

CPython IronPython C#
Rhino
Grasshopper

Script-sync in Rhino

Script-sync in Grasshopper

Installation

🦏/🦗 Rhino/Grasshopper: Install script-sync rhino from food4rhino or the packageManager in Rhino (name: "script-sync"). For Grasshopper you might want to get rid of the old version of the plugin before installing the new one. Just right-click on the old icon and click delete.

👩‍💻 VScode: Install script-syncVSCode extension from the VSCode extension marketplace (name: "script-sync")

How to use

🦏 Rhino: To start script-sync in RhinoV8, run the command ScriptSyncStart in RhinoV8. This will start a server that listens to commands from VSCode. To close script-sync in RhinoV8, run the command ScriptSyncStop in RhinoV8.

🦗 Grasshopper: To start script-sync in Grasshopper, add the component script-sync: btn: click to open a file explorer and connect a script, x: classical input parameter, you can add more, stdout: all errors and print() is deviated here, a: classical output parameter, you can add more.

👩‍💻 VScode: Open a script in VSCode and run it in RhinoV8 by pressing F4 to run in Rhino or shift+F4 for Grasshopper. For Python files, add a shebang to the first line of the file to specify the interpreter to use, e.g.:

  • #! python3 to interpret it with CPython
  • ⚠️ #! python2 to interpret it with IronPython (only in Rhino)

Requirements

The plug-in needs to be installed on RhinoV8, Grasshopper and VSCode

Caveats

There is no intellisense for C# and Python in VSCode. In addi

Issues

For bugs open an issue on the GitHub repo.

Contribution

All contributions are welcome. Have a look at the contribution guidelines.

References

There are a lot of plug-ins that allow to run Python in Rhino. Among them, CodeListener was working until RhinoV8 and it was a source of inspiration for this project. This is a simplified version, but it can run C# and both IronPython and CPython in RhinoV8.

For code maintainers

Packages are published (.yak and .vsix) automatically when a GitHub release is created.

About

Rhino/Grasshopper/VSCode plug-in to run C# and Python (IronPython or CPython) scripts directly from VSCode.

https://www.food4rhino.com/en/app/script-sync

License:MIT License


Languages

Language:Python 72.8%Language:C# 17.2%Language:TypeScript 9.8%Language:JavaScript 0.2%