

Kivy: python UI framework. GPU accelerated, multi-input (win,osx,lin,android) - tehansen

Kivy 1.0.7. was just released.
kivy is the most awesome framework (for any language) for creating stunning user interfaces with support for a wide variety of input modalities like multi-touch, object/marker/fiducial tracking, kinect/gestures. Packaging for windows (exe), osx (.app/.dmg), and android is now available for easy distribution of kivy apps. It's licensed under the LGPL, so you can use it in both open and closed source projects.
Info, downloads, and extensive documentation available here: http://kivy.org/
official github repo: http://github.com/tito/kivy
From the release notes: Kivy is a full featured framework for creating novel and performant user interfaces, such as multitouch applications, under the LGPL 3 license. The framework works on Windows, MacOSX, Linux and Android. iOS support is coming soon, and available to brave hackers in repos.
DISCLAIMER: I am one of the kivy developers, so I am obviously biased in how awesome I think it is. That said, please check it out to see why I am so excited, before knocking me for posting such a shameless plug.
======
wccrawford
I'm pretty sure that LGPL3 requires that the user be able to replace the
library with a modified version of the library.

Since that's not possible on Android that I know of (because of the
packaging), I don't see how Android distribution can comply with the LGPL3
license?

~~~
seabee
What prevents the user repackaging the application given its source?

------
breckinloggins
For the lazy:

<http://kivy.org/>

<http://github.com/tito/kivy>

------
iam
This is cool, but to seriously use this one would have to have an idea of how
extensible this is (is it easy to add new widgets? reskin existing widgets?)
compared to existing UI toolkits.

Also it's entirely unclear what makes Kivy specific to NUI? I am assuming that
you ditched the old one widget/one focus model and that multiple widgets can
have focus at the same time. But that's not really said anywhere, it just
"looks" like it from the multiple scrollbars in the demo.

So really aside from the very cool demo there is no strong evidence to
convince someone to switch to Kivy if they've worked with UI toolkits before.

Maybe talk about this over the tech demo on top of having cool music.

~~~
txprog
It's perfectly fitted to make your own widget or add new one. Almost all our
widgets are subclassed from another one, and we believe that the simplicity to
make your own widget speed up the testing process. We even think that if you
don't have a perfect widget that fit to your need, it sometimes simpler to
subclass and changes or add new behavior / graphics. Check:
[http://kivy.org/docs/guide/firstwidget.html#your-first-
widge...](http://kivy.org/docs/guide/firstwidget.html#your-first-widget) for a
complicated widget that tracing all the touches + trails

What's make Kivy specific to NUI is we have an approach that combine every
possible input into one event. That's unlikely because most of times, you have
event for specific device (on_mouse_down/move.., on_object_down/move...,
on_touch_... ) Here, we have uniq event dispatch, and extensible motion event
that deliver all the data he can deliver (position, angle, acceleration,
image...). It's called profile, and a motion event can deliver information
according to one or more profile. For example, the mouse will fill properties
of the "pos" profile, instead of Wacom tablet that will fill "pos",
"pressure", or even TUIO with fiducials object that will fill "markerid" and
"angle". Then you can do specific interaction or filter specific motion event
according the profiles delivered in the current touch.

All the widgets are made using that approach, make it possible multiple
interactions at the same time.

Not sure if it'm 100% clear, best is to read & try :)

------
runjake
You should just post this under main HN.

It isn't really an Ask HN sort of item, and Ask should be used for "Tell HN",
as that's kinda what HN main is for.

It'll probably get you more exposure, too. I'm curious to see how the
licensing works out.

------
genbattle
Wow, i've been looking for an open source library like this for ages. This is
prettymuch exactly what we have where I work (Unlimited
Realities/Fingertapps), but the engine is proprietary and based on a custom
scripting language.

Having an open alternative to play around with in my own time will be awesome,
thankyou!

------
fadzlan
I am not sure how well LPGL works for iOS, since you need to compile it as
single executable without dynamic linking to 3rd party libraries, hence need
to provide the source.

Can we have LGPL with exception for iOS?

------
inportb
Those pages load very slowly for me, but I like the idea.

It might be experiencing unusual load. Let's use a CDN instead.
<http://kivy.org.nyud.net/>

~~~
lawlit
Same here.

~~~
benderdrummer
same here, maybe the tweet caused servers to be too busy

~~~
tehansen
yes, reddit + HN brought lots of people at once :/ hopefully back up soon (its
loading, albeit very very slowly here).

github is still there for anyone wanting to check it out, the info and docs
are best on the website though.

------
toddoh
I usually prefer native UI toolkits, but this looks decent framework for
Android apps. well, Android default UI apis/frameworks are frustrating me.
Supporting wide variety of input modalities is nice.

------
gte910h
I've been looking for Android via Python. Tell me, what devices have you been
using it on? What apps feature it in the market?

~~~
txprog
Search Kivy on the market:
[https://market.android.com/search?q=kivy&so=1&c=apps](https://market.android.com/search?q=kivy&so=1&c=apps)

------
inportb
How does the Android version work? Does it bundle a Python executable?

~~~
txprog
Yes, python is compiled for arm, and shipped as a library within the apk. Java
-> Python -> your .py application.

------
nvictor
that is truly awesome.

