All Projects → mitevpi → gh-web-ui

mitevpi / gh-web-ui

Licence: GPL-3.0 License
Package for building web-based User Interfaces (UI) in Rhino Grasshopper.

Programming Languages

C#
18002 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to gh-web-ui

dendro
volumetric modeling for grasshopper built on top of openvdb
Stars: ✭ 47 (-31.88%)
Mutual labels:  rhino, grasshopper, rhino3d
RobotComponents
A Grasshopper plugin for intuitive robot programming
Stars: ✭ 30 (-56.52%)
Mutual labels:  rhino, grasshopper, rhino3d
speckle-sharp
.NET SDK, Schema and Connectors: Revit, Rhino, Grasshopper, Dynamo, ETABS, AutoCAD, Civil3D & more.
Stars: ✭ 214 (+210.14%)
Mutual labels:  rhino, grasshopper, aec
Uav Mapper
UAV-Mapper is a lightweight UAV Image Processing System, Visual SFM reconstruction or Aerial Triangulation, Fast Ortho-Mosaic, Plannar Mosaic, Fast Digital Surface Map (DSM) and 3d reconstruction for UAVs.
Stars: ✭ 106 (+53.62%)
Mutual labels:  dom, 3d
Choo
🚂🚋 - sturdy 4kb frontend framework
Stars: ✭ 6,637 (+9518.84%)
Mutual labels:  dom, interface
Curtainsjs
curtains.js is a lightweight vanilla WebGL javascript library that turns HTML DOM elements into interactive textured planes.
Stars: ✭ 1,039 (+1405.8%)
Mutual labels:  dom, 3d
Crab
JavaScript library for building user interfaces with Custom Elements, Shadow DOM and React like API
Stars: ✭ 22 (-68.12%)
Mutual labels:  dom, interface
crab
JavaScript library for building user interfaces with Custom Elements, Shadow DOM and React like API
Stars: ✭ 22 (-68.12%)
Mutual labels:  dom, interface
React Tilt
👓 Parallax tilt hover effect for React JS - tilt.js
Stars: ✭ 254 (+268.12%)
Mutual labels:  dom, 3d
rhino-secrets
A short overview on the secrets of Rhino 3D & Grasshopper.
Stars: ✭ 28 (-59.42%)
Mutual labels:  rhino, grasshopper
clipper
Implementation for the clipper library in rhino and grasshopper.
Stars: ✭ 55 (-20.29%)
Mutual labels:  rhino, grasshopper
firehopper
Rhino Grasshopper's RESTful interface for Google Firebase
Stars: ✭ 18 (-73.91%)
Mutual labels:  rhino, grasshopper
Robot Gui
A three.js based 3D robot interface.
Stars: ✭ 181 (+162.32%)
Mutual labels:  interface, 3d
WombatGH
Wombat for Grasshopper
Stars: ✭ 38 (-44.93%)
Mutual labels:  grasshopper, rhino3d
compas fab
Robotic fabrication package for the COMPAS Framework.
Stars: ✭ 75 (+8.7%)
Mutual labels:  rhino3d, aec
RhinoLink
Wolfram Language interface to Rhino3D
Stars: ✭ 23 (-66.67%)
Mutual labels:  rhino, rhino3d
callbag-jsx
callbags + JSX: fast and tiny interactive web apps
Stars: ✭ 69 (+0%)
Mutual labels:  dom
partytown
Relocate resource intensive third-party scripts off of the main thread and into a web worker. 🎉
Stars: ✭ 3,626 (+5155.07%)
Mutual labels:  dom
Impala
Parallel High-Performance Components for Rhino/Grasshopper
Stars: ✭ 32 (-53.62%)
Mutual labels:  rhino3d
dababy
Data binding so simple even DaBaby could do it!
Stars: ✭ 27 (-60.87%)
Mutual labels:  dom

Grasshopper Web UI

Generic badge GitHub tag (latest by date) GitHub

GitHub last commit GitHub issues GitHub closed issues GitHub contributors

Prototype for building a Grasshopper interface using native web components.

Development

  1. Clone locally
  2. Re-link and restore dependencies
  3. Build (everything shoudl copy to the Grasshopper/Libraries location)
  4. Open the ServeInterface.gh

Usage

Build/Use

If you need/want to make modifications/contributions to this package, please refer to the Development section above.

If you just want to use the package, please refer to the Releases section of GitHub. From there, download the latest release, unzip the file, and paste the contents into %appdata%\Grasshopper\Libraries.

Hard-Coded UI

The simplest way to use this package is as a dedicated input-receiver by supplying a hard-coded HTML file. This would allow you to read user inputs, but not add any information to the interface. It would require that you or someone else on your team has basic web-coding skills, as they're needed to write the interface. Samples of these kinds of interfaces can be found in the Web UI folder.

After building the .gha from source, you can open the Grasshopper File ServeInterface.gh for testing of this workflow.

Links Image
Vue.js UI - ServeInterface.gh Vue.js UI
Bootstrap HTML UI - ServeInterface.gh Bootstrap UI
Vanilla HTML UI - SampleScriptHardcoded.gh Vanilla HTML UI

Grasshopper-Created UI

This method of using the package is closer to the familiar Grasshopper UI paradigm, as established by Andrew Heumann in Human UI. The goal is that the user can use Grasshopper to build a fully-functional HTML-based interface without needing to write any kind of textual code. This is still a Work-In-Progress and will remain that way for quite some time as there are very many elements that must be supported.

Grasshopper Definition Image
Custom GH UI Custom GH UI
Advanced Custom GH UI Custom GH UI

Support Map

Currently, the following UI (HTML) input components are supported in the specified contexts:

Component Read Value from HTML Create in GH Set Value from GH Output Set Label/Props from GH Output
Slider Yes Yes Yes No
Button Yes Yes No (Simulate Click) No
Text Input Yes Yes Yes No
Radio Button Yes Yes Yes No
Check Box Yes Yes Yes No
Color Yes Yes Yes No
Date Yes Yes Yes No
Time Yes Yes Yes No
Week Yes No TBD No
File Maybe No Maybe No
Text Label N/A Yes Yes N/A

Tentative Roadmap

Abstract

Human UI from Andrew Heumann has been a powerful force in the industry over the last X years - it helps us share and democratize computational know-how and deliver it to our colleagues who may not be as techincally inclined. I think it's time for the next step in this journey. With the web becoming the standard for app development, interaction design, and so much more - I think it makes sense to use it as the backbone for the project.

Roadmap

  • Ensure a Chromium-based execution environment.
  • Read values from the DOM.
  • Account for most common input-type items that may be in the DOM/needed by users.
  • Add elements/outputs to the DOM.
  • Create components to build an interface/DOM using Grasshopper only (no web dev knowledge).

Known Issues

Credits

Enormous thanks to everyone who has contributed in any way! I've tried to include everyone here, but I may have missed someone. If that's the case, I apologize :) - please reach out anytime.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].