davatron5000 / NodebotUI

Twitter Bootstrap for Nodebot Interfaces
MIT License
14 stars 5 forks source link

A proposal re: the future of NodebotUI #23

Open dtex opened 10 years ago

dtex commented 10 years ago

I haven't touched this in a while. I've been using my free-time to make some contributions to Johnny-Five. But, I haven't stopped thinking about it. My thoughts have centered around the question, "Who will use this?".

As it's designed now the user would have to be someone who can install and run node and a node application. They would need a good understanding of HTML and want to learn Robotics. They would also need to want a browser UI. They would also need no interest in writing their own node server to interface between their web page and Johnny-Five. Now take all those attributes of our target user and put them into something akin to a Drake Equation. I think we will find our target user base is small which is discouraging.

That said I still think this is cool. Thanks to my increased familiarity with Johnny-Five I think I can make it even better. The question remains, how can we increase its usefulness for a wider audience?

Have you seen Scratch? http://scratch.mit.edu/ It's an introductory programming language for kids. It uses a Blockly-like interface for creating scripts. Those scripts control sprites on a stage and handle basic interactivity. https://code.google.com/p/blockly/. My 8 year old son has been learning it and he's having a blast.

I think NodebotUI is the perfect foundation for doing something similar. Instead of sprites on a stage we'd have servos, motors, sensors, etc. I've been using atom.io which is a node application that runs under node-webkit. It feels like a native app, and the "nodeness" of it is hidden from the user. Just double click it and run.

One of my coworkers added Blockly to our (unrelated) Node Knockout entry and it was slick and not hard to do.

We could build a node-webkit app. It would allow users to drag and drop components (servos, sensors, etc) on a stage and it shows them how to wire it up (think Fritzing lite). That would create all the DOM elements that interface with NodebotUI. We could add Blockly for scripting. The end result would be something that helps kids learn about robotics... "Scratch for bots".

davatron5000 commented 10 years ago

Hey @dtex! Didn't mean to leave you hanging whatsoever. I've been buried under work and conferences a bit.

I like this idea and it's probably a natural extension to what we were doing anyways. We have a component library that you drag to the InterfaceBuilder (:copyright:Apple™ :stuck_out_tongue:), then maybe a :wrench: icon that is used to configure/program that component using Blockly.

Do you see this as a standalone app (like Atom) then? I wonder what hurdles we face there.

dtex commented 10 years ago

Pawel Szymczykowski @makenai actually has a jump start on this. Check it out at: https://github.com/makenai/robotnik

ActionNerd commented 9 years ago

Gents, just stumbled across this repo and am very excited to check it out. Read the description, and it's almost exactly what I need. I currently have a rig which runs front end in a browser which is the primary entry point for a XBox 360 controller. It spits objects back to the main node app via socket.io and it works fantastic. But it's all custom and very hackish, so to see that there is something semi-pro out there, I am enthused, and I may be switching to this in the very near future.

Are you still supporting?

And to answer who would use something like this? Well... me! The browser, socket, node combo is a powerful one, and I don't really know why it isn't more popular!

davatron5000 commented 9 years ago

@ActionNerd We're "dormant" for sure. But I'm still interested. Just don't have time to point at it.

I've also been mulling around the idea about Polymer/"Material Design" Style Web Components. Maybe we can create something like that... hmmm... :thought_balloon: