Hi McNeel team,
We are experiencing a severe performance regression in Rhino 8.33 (8.33.26188.13001, 2026-07-07) affecting Grasshopper definitions that preview Rhino-native annotation objects (Model Text Entity, Hatch, Linear Dimension, Leader, etc.). Reverting to 8.32 (8.32.26160.13001) completely resolves the issue. Reproduced on multiple machines (Windows 11, Japanese locale).
Symptoms
- Our production GH definition (a drawing-layout generator, ~930 components) creates roughly 60 native annotation objects arrayed over 9 layout frames (~260 annotation instances total), collected into a Merge param whose preview is enabled.
- In 8.33, every solution — opening the file, internalising a Brep, or changing any slider/value list — freezes Rhino for 45–52 seconds. The command line repeatedly shows the Make2D/region-analysis progress messages (“Resolving curve end points… / Making graph…”, Japanese UI: 「曲線の端点を解決中… / グラフを作成中…」) — 264 pairs of these messages per solution.
- Annotation text placement is also subtly wrong in 8.33 (text positions shift); this is fixed in 8.32 as well.
- In 8.32 the identical definition solves and previews instantly (as it always had).
What we isolated
- The slowdown is not in the solver. Sum of all components’ ProcessorTime is ~4.2 s while wall-clock is ~50 s. The remaining ~45 s happens outside SolveInstance, in the display/preview pipeline after each solution.
- Setting the GH document’s PreviewMode to Disabled drops the time from ~50 s to ~2.2 s.
- Hiding one single Merge param (the one holding the ~58 ModelObject goo items feeding a Content Cache) also drops it to ~2.0 s. Un-hiding it brings the 50 s back.
- Make2D components are unrelated: locking them, setting AutoCompute=false, or even disconnecting all their wires changes nothing.
- The per-item re-resolution appears to run for every annotation instance on every solution, even when the data is unchanged upstream — i.e., the preview geometry of ModelObjects no longer appears to be cached between solutions in 8.33.
Minimal reproduction outline
- In Rhino 8.33, create a GH definition that generates a few hundred Model Text Entities (and/or Hatches / Linear Dimensions), merge them into one param with preview enabled.
- Change any upstream slider.
- Observe: each solution triggers a long freeze with repeated “Resolving curve end points… / Making graph…” messages proportional to the number of annotation instances.
- Repeat in 8.32: instant.
Expected behavior
Preview resolution of ModelObject annotations should be cached/reused as in 8.32, instead of being fully re-resolved for every instance on every solution (and every re-display).
This regression makes annotation-heavy GH drafting definitions unusable in 8.33, and we have had to roll back an entire team to 8.32 and disable updates. Happy to provide a stripped-down repro file or run test builds if helpful.
Thanks!
Rhino 8 SR32 2026-6-9 (Rhino 8, 8.32.26160.13001, Git hash:master @ 2804b73b0f4b4feba10cb8b0b07c18fce290de93)
License type: Commercial、ビルド 2026-06-09
License details: Cloud Zoo
Windows 11 (10.0.26200 SR0.0) or greater (Physical RAM: 31GB)
.NET 8.0.26
Computer platform: LAPTOP - Plugged in [91% battery remaining]
Non-hybrid graphics configuration.
Primary display and OpenGL: NVIDIA GeForce RTX 5070 Laptop GPU (NVidia) Memory: 8GB, Driver date: 3-4-2026 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 595.79
Integrated accelerated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
- Secondary monitor attached to adapter port 1
Primary OpenGL: NVIDIA GeForce RTX 5070 Laptop GPU (NVidia) Memory: 8GB, Driver date: 3-4-2026 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 595.79
Integrated accelerated graphics device with 4 adapter port(s)
- Windows Main Display is laptop’s integrated screen or built-in port
- Secondary monitor attached to adapter port 1
Secondary graphics devices.
Intel(R) Graphics (Intel) Memory: 2GB, Driver date: 11-26-2025 (M-D-Y).
Integrated graphics device with 4 adapter port(s)
- There are no monitors attached to this device. Laptop lid is probably closed
OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
GPU Tessellation is: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)
Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High
Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 3-4-2026
Driver Version: 32.0.15.9579
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8151 MB
Rhino plugins that do not ship with Rhino
C:\Users\ohno\AppData\Roaming\McNeel\Rhinoceros\packages\8.0\Rhino-MCP-Platform\0.1.5\net8.0\RhinoMcpPlatform.rhp “RhinoMcpPlatform” 0.1.5.0
C:\Program Files\Enscape\Bin64\Enscape.Rhino8.Plugin.dll “Enscape.Rhino8.Plugin” 0.0.23328.1419
Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8\Plug-ins\Commands.rhp “Commands” 8.32.26160.13001
C:\Program Files\Rhino 8\Plug-ins\WebBrowser.rhp “ウェブブラウザ”
C:\Program Files\Rhino 8\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8\Plug-ins\RhinoScript.rhp “RhinoScript”
C:\Program Files\Rhino 8\Plug-ins\IdleProcessor.rhp “アイドルプロセッサ”
C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp “Rhinoレンダー” 8.32.26160.13001
C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.32.26160.13001
C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp “MeshCommands” 8.32.26160.13001
C:\Program Files\Rhino 8\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 8.32.26160.13001
C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.32.26160.13001
C:\Program Files\Rhino 8\Plug-ins\Grasshopper\GrasshopperPlugin.rhp “Grasshopper” 8.32.26160.13001
C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.32.26160.13001
C:\Program Files\Rhino 8\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 8\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 8\Plug-ins\SectionTools.rhp “SectionTools”