HotLoader
Use native code editors to write true C# components for Grasshopper, hot-loaded at runtime.
Install / Use
/learn @camnewnham/HotLoaderREADME
<a href="https://www.food4rhino.com/app/hotloader"><img alt="Yak Badge" src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fyak.rhino3d.com%2Fpackages%2FHotLoader&query=%24.version&suffix=%20&logo=Rhinoceros&label=Yak"> </a>
HotLoader
Hotloader extends Grasshopper's scripting tools by allowing you to write, debug, load C# plugins that are hot-loaded at runtime.
Why
- The native Grasshopper script editor is inconvenient to use for tasks with any complexity. The new editor in Rhino 8 is a marked improvement, but still has some of the following limitations.
- Distributing scripts that use external references requires users to also have the same references, and locate them. This also includes NuGet packages.
- Precompiled C# plugins can run faster than script components (as you can use the true parameter types without casting)
- Customization if script components is limited (icons, custom drawing, right click menus, etc.).
- Writing Grasshopper plugins has some overhead in setting up the project and distributing the plugin.
Some of these challenges are assisted in isolation by tools such as Script Parasite or the new script editor in Rhino 8, or even just the project templates.
HotComponent became feasible with the introduction of Yak - as until now it would have been inconvenient to share HotComponents because the user would have to pre-install a plugin to load them. Now, the user simply needs to accept the prompt to install HotLoader and the definition will open as normal.
Who
HotComponent is designed for those who already have the tools installed to write Grasshopper or Rhino plugins. This usually means Visual Studio or Visual Studio for Mac.
HotComponent is ideal when you want to easily share something more complex that what you'd write in a script component, but not so generic that you'd write a complete plugin for it.
How
HotComponent works by creating a C# project, similar to what you'd create if you were writing a normal component in a custom Grasshopper plugin. When you edit and compile the code, the component is hot-loaded into your Grasshopper definition just like pressing play on the C# script editor.
- Place a
HotComponentinto a Grasshopper document. - The
.csprojwill open in your native editor. - Edit the code and rebuild the project.
- Swap back to Grasshopper and use your new component. Customize and rebuild as required.
- Optionally, attach your debugger to Rhino to hit breakpoints in your code.
The full source code for the component and the compiled binaries (including references) are embedded in the component, and hence saved with the Grasshopper definition.
Example
The best example of what you'd see when editing a HotComponent is in the Template. However you also have access to the full suite of GH_Component methods such as serialization, lifecycle and appearance methods.
From the end-user's perspective (if it's not you!) a HotComponent is indistinguishable from a regular component, except that:
- The source code is editable
- The custom component will not appear in the menu.

HotComponent works on both Mac and Windows, and HotComponents are editable with any tool that can compile a .csproj - tested with Visual Studio 2022 and Visual Studio for Mac.
Contributing
Contributions and suggestions are welcome. Please use GitHub issues to communicate.
Related Skills
node-connect
346.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
