Showing posts with label Slingshot. Show all posts
Showing posts with label Slingshot. Show all posts

Saturday, November 29, 2014

Slingshot! for Dynamo Update

Introduce some SQL into Dynamo
It was about time something was done about the version of Slingshot! that has been collecting dust on the Dynamo package manager....   A year ago, the Slingshot package was released as a collection of Python scripts and several required libraries for MySQL and SQLite needed to be downloaded separately due to package limitations.

No more!  As of tonight, Slingshot! for Dynamo is distributed as a node library and ships with all the needed dependencies.  So if you are interested in cutting your teeth on some SQL within a graphical programming language, give it a shot!

Interact with relational databases
And just in case you forgot Slingshot! was open source... I have moved the source code to a new home over at BitBucket.org (including both Grasshopper and Dynamo projects)

https://bitbucket.org/archinate/slingshot/

Monday, January 27, 2014

January closes out with more LunchBoxes and Slingshots!

Cool stuff continues to develop for my plug-ins LunchBox and Slingshot!...  Be sure you are checking the GitHub site and the Dynamo package manager to test out the latest builds and nodes.

Slingshot! (for Grasshopper)
Data grid view for Slingshot! query components in Grasshopper.
Updates continue to trickle into the Slingshot! source code on GitHub.  Users might be interested in this nifty data grid viewer for query returns which provides a selectable data.  There is also some stuff under the hood which should speed up your command and query operations.

LunchBox (for Dynamo)
LunchBox Element Collector components for Dynamo
Don't be shy about pulling in your Revit elements into Dynamo.  LunchBox now provides a growing set of element collectors which let you reference lists and lists of Revit elements that might be existing in your model.  Need to pull in all the control points from your adaptive components?  Do you need to get data about Revit room elements?  It's a snap with LunchBox for Dynamo... get it in the package manager!

Friday, December 27, 2013

Return of the Slingshot!

Slingshot! for Dynamo... oh no you didn't!
This past April, I released the source code of this project through GitHub.  Since then, I have been intermittently updating the source code and testing new approaches.  In fact, I am currently re-structuring much of the plug-in under the hood and also introducing different UI elements.  Hopefully, this amounts to a more streamlined and flexible tool.  In addition, I have been porting some of my Slingshot! code over to Dynamo which should add a new dimension to sharing information using database connections.

You can always try this stuff out by building the Visual Studio project on GitHub.  I also plan on regularly posting builds to my repo.

Here are some of the more notable changes...

Grasshopper Component UI

Major components now contain context menus for changing settings related to connecting, querying, and commands.  I believe this allows many workflows to be simplified.  This has allowed me to consolidate the total number of nodes without losing functionality.
Connection string creation form.  The string will be formatted based on the selected RDBMS connector.
Component settings for file-based databases (Excel, SQLite, Access)

Grasshopper Data Trees

Some Grasshopper nodes would have benefited greatly from data tree implementation.  For example, query outputs were a little clunky with the user having to either parse comma separated values or indicate a column.  Now, query outputs come out as nice data trees for easier parsing.  Rhino Pack and Unpack are also supportive of data trees.

Rhino Pack/Unpack components now support Data Trees to preserver structure.

Slingshot! for Dynamo

It is still early days, but the port of Slingshot! for Dynamo has begun.  Slingshot! for Dynamo is a Python-based implementation of the database connectors available in the Grasshopper plug-in.  As of this post, I am supporting MySQL and SQLite connections but more will be added in the near future.  You can get it now from the Dynamo Package Manager.

Slingshot! for Dynamo lets you access databases for use with Revit/Vasari
Slingshot! for Dynamo is now available in the Dynamo Package manager.

Monday, April 8, 2013

Slingshot! is now OPEN SOURCE


With April Fools day a thing of the past....here is an announcement that is more legit :)

Open Sourcing some of my tools is something that has been on my mind for awhile now.  While it is not quite clear what the primary advantage of doing this will be (they are already free, after all), I see it as a way to continue to promote a culture of sharing computational processes. I also see open sourcing tools as a way for them live on beyond a standard update-release model and give the workflows and concepts the opportunity to become a part of other tools and processes.  Slingshot! hasn't seen a significant update in awhile and I hope that this will give it the juice it needs to go to the next level.

Slingshot! for Grasshopper is now available as an Open Source project on GitHub.  Slingshot! is a Visual Studio 2012 project written with VB.NET.  The Slingshot! code is now licensed under the GNU General Public License which guarantees...
  • the freedom to use the software for any purpose, 
  • the freedom to change the software to suit your needs, 
  • the freedom to share the software with your friends and neighbors, 
  • and the freedom to share the changes you make.
The code is going through some general updates at the moment such as code clean-up and other maintenance.  The current compiled version of Slingshot! available on Food4Rhino is still the recommended version to use.  New 'official' builds will be available through The Proving Ground in the near future

Monday, May 21, 2012

Slingshot! v0.88 Released



I have posted the new version of the Slingshot! Database plug-in for testing.  The new version includes relevant binary files for MySQL and SQLite.  Unlike previous versions, this means you should not have to download the DLLs and install them separately.  The package should have all you need :)

The new SQLite functionality requires that you should select either the 32-bit or 64-bit release as per your windows system specs.  The new Serialization components only work with Rhino 5.0.  This limitation is a sign of the times and is out of my hands!

Please review the version notes before installing...
...then proceed to the download site (now on The Proving Ground Wiki)

Please do not hesitate to report problems...

There is new territory here so I am interested in knowing if the new functionality is performing as expected on different set-ups.

-Nathan

Sunday, May 20, 2012

Slingshot! v0.88... Preview

It has been awhile... so I have decided to circle back on my first public plug-in Slingshot!


I am working away on Slingshot! Database for Grasshopper v0.88.  The new version will included support for SQLite in addition to components which allow users to serialize/deserialize Grasshopper objects into XML records.

  • SQLite:  Users will be able to create, query, and write to SQLite database files.  SQLite is a nice format with RDBMS capability without the need for those pesky database servers.
  • Serialization:  Users will be able to serialize and deserialize geometry types into XML records and stored externally in a database or other format.  These records can be accessed by other users deserialized back into Grasshopper geometry.
Still working out some bugs... the new version will be released sometime this week...

Deserialized geometry being stored as XML within a SQLite file
Serialized Grasshopper objects being inserted into a SQLite database file
Serialization process....

Friday, January 20, 2012

Slingshot!... for Revit?


Now that I am done being all 'protest-y'...(for now)

...I thought it would be good to reward my readers with an update on something many have been excited to know more about. I am in the process of prototyping some functionality and work flows for a new tool.... Slingshot! for Revit.

Generally, the tool will provide different means of connecting Revit (and Vasari) to relational database management systems, including MySQL. More importantly, I am interested in establishing common database schema that will allow for a more fluid workflow between Revit and external design tools like Rhino and Grasshopper. This includes sharing parameters and geometry.

I had developed several proofs-of-concept in late 2010 and previewed a few demos at ACADIA in New York... but finally I am finding time (and motivation) to give this the push it needs.

The images below show me prototyping some functionality via the RevitPythonShell plug-in in Vasari. Python is giving me a more fluid workflow than the usual Revit development process. Eventually, the tools will become true add-ins...

A point cloud in Vasari being created using a MySQL database...

The RevitPythonShell console printing a bunch of data from MySQL...

The source of all the trouble...Slingshot! for Grasshopper building a point cloud database...

Slingshot! is Copyright (c) Nathan Miller 2012

Wednesday, January 18, 2012

Design Against Censorship


Well that blackout was fun!

The internet blackout in protest of SOPA and PIPA seems to have done its job for today... but the fight is not over yet...

If you are a designer, architect, BIM'er, or computational guru and want a small banner on your site, I took a stab at a simple one. You can see I have a one on the side bar linking over to http://americancensorship.org


Here is a little act of computational design protest...via my Slingshot! Database Plug-in for Grasshopper...


Saturday, January 7, 2012

Slingshot! Documentation and Tutorials WIP

Greetings Slingshot! users...!

I have created a page dedicated to documentation and tutorials for the Slingshot! plug-in. The page is a work-in-progress and more examples and reference materials will be made available as time permits

Currently, there is some general documentation along with tutorials for:

Basics: Connections, Commands, Queries
Creating a mesh database

Wednesday, December 7, 2011

More Upcoming Slingshot! Stuff...

The next update will introduce some standard tools to simplify creating database systems for storing and updating geometry and analysis results.

New "Sensor Component" will let you convert sensor data from analysis tools (like DIVA) in a structured database.


A few other database creation components will allow rapid creation and updating of geometric elements such as points, lines, and meshes.... These tools are sure to rapidly expand to include other forms of geometry types and representations.


And, of course, an update to the Twitter Search component. The component now parses search results into lists in addition to providing the raw Atom XML.

Thursday, December 1, 2011

Coming Soon...Slingshot! Geometry Tools

Coming soon... new Slingshot tools for translating geometry into executable SQL code for DB storage.

This images shows a component which takes a mesh as an input and converts it to a SQL code for use in different databases and accessed from different platforms.

Saturday, October 15, 2011

What's New in Slingshot! Database v0.8?

Here are short visual tour of some the new features available in Slingshot! Database v0.8


1. Support for multiple database systems. The MySQL connector is still supported. ODBC and OLE DB allow access to many other RDBMS where information can be accessed, shared and coordinated with Grasshopper.
2. Perform SQL queries and commands on Excel files using OLE DB. Access information and search for data without launching the Excel program. (This is an alternative to the more common System.Runtime.InteropServices workflow.)
3. Access information from around the Web using FTP and HTTP components. Source information from websites and social networks. The Twitter Search component allows for Grasshopper to track recent posts and trends.

Thursday, October 13, 2011

Slingshot! Database Plug-in v0.8

I am happy to announce a new milestone update to the Slingshot! plug-in for Grasshopper. The aim of the tool is to combine the power of parametric modeling with relational database management systems. Previously, MySQL was the only RDBMS supported. The new version includes support for ODBC and OLE DB which will allow connections to many different types of databases such as Access, PostgreSQL, SQL server, etc. In addition, I am beginning to build a collection of other helpful (and sometimes fun) workflow tools for accessing web information.

The new version introduces new (yet familiar) database workflows. For those of you who have been putting the MySQL plug-in to good use, you may want to hold off on upgrading until I have some demonstration videos and instructions up.

The older versions of the MySQL plug-in will continue to be available. However, you should not have both installed at the same time (The Slingshot! tab will get messy!)

Here is a list of updates...(not comprehensive)
  • Now officially called Slingshot! Database
  • Plug-In supports MySQL, ODBC, and OLE DB.
  • Reorganized toolbar with new icons and components.
  • Query and Command components enable access to different databases.
  • SQL string components help users compose SQL code for use with query and command components.
  • Web tools provide support for FTP upload/download and HTTP streams.
  • Read and write to remote (and closed) Excel files using OLE DB access.
  • Twitter Search gives users access to the search API and returns XML into Grasshopper.
  • MySQL components now require the MySQL .NET connector 6.4.4

Sunday, September 18, 2011

Force-Based Data Visualization

Using a combination of Slingshot! and Kangaroo Physics, this post demonstrates the self-organization of a complex data set. This approach is similar to the 2D tools available in graph visualizers such as Gephi.

The process uses the friend relationships on my Facebook network. This data is stored in a MySQL database and pulled into Grasshopper using Slingshot! The data set contains the names of all of my Facebook friends and their connection to my other friends. In 3D space, these connections are represented as lines.

When the data is first brought into the Grasshopper environment, the visualization is unstructured with name and connections scattered randomly in space.

Using Kangaroo Physics, the connection lines translate to force vectors which "push" and "pull" the names around. Based on relationships in the data, the 3D diagram will self-organize. Related friends cluster together using attraction forces. Friends with higher connectivity have a higher repulsion setting allowing them to be distinguished in the network.



The resulting structures are quite amazing. Navigating them shows a natural grouping of friends with some interesting granularity... For example: my relatives, work colleagues, and college friends exist in distinct clusters within the network. The source data does not inherently have these biases built in.

Interested in pulling your Facebook network information for some data viz? Check out this Gephi tutorial... Once you have it, you can store it in the format of your choosing.

Sunday, September 11, 2011

Slingshot! GH+MySQL v0.7.2.1 Released

This is a minor update to the Slingshot! MySQL plugin for Grasshopper. This version ensures compatibility with Grasshopper version 0.8.0051

In addition there have been a few parameter additions and some naming corrections. Check the version history for more details.

Sunday, August 14, 2011

An Energy Model... of Earth? ASHRAE + Slingshot!

What do all of those ASHRAE Climactic Design Conditions look like?

Using some CSV file parsing, I translated the ASHRAE 2009 Design Conditions into a MySQL relational database. Location, heating, cooling, and extreme conditions for 5564 stations are stored in tables and can be dynamically searched. Using Slingshot!, I can query information and load it into Grasshopper for visualization...

Sunday, July 31, 2011

Genome Database using Slingshot!




Thanks the new record component and some fixed slider functionality, I was able to create a process for recording Galapagos iterations to a MySQL database via the Slingshot! plug-in...


The process for recording is fairly straight forward...

Step 1: Use the 'record' component to track changing sliders and fitness values.
Step 2: Run Galapagos
Step 3: Insert the recorded fitness and gene values into the database.
Step 4: Query the database to view and sort the genomes.

Quite handy for revisiting all iterations and comparing different ranges of fitness...



Sunday, July 10, 2011

GH+MySQL v0.7.2 Released (w/ ODBC)

A new release of the Slingshot! GH+MySQL plug-in is available.

The release is a minor update which re-organizes a few categories and also includes a new generic MySQL Command component for executing SQL operations not included in other components.

The main reason for this release was to introduce ODBC (Open Database Connectivity) into the mix. The two components (ODBC Command and ODBC Query) should let users access any ODBC compliant database. I have tested the plug-in with PostgreSQL... if anyone tests them with others, please let me know!

Enjoy!

Sunday, May 15, 2011

Slingshot!... to the web???

Parametric, generative, BIM.... web browsing?

This proof-of-concept video shows a Grasshopper-generated model being updated and visualized within Google Chrome. The Slingshot! plug-in updates a database when the model changes.

After each, change the web browser is refreshed to show changes to the 3D visual and the database tables.