Coder Social home page Coder Social logo

processing / processing-android Goto Github PK

View Code? Open in Web Editor NEW
766.0 89.0 292.0 105.57 MB

Processing mode and core library to create Android apps with Processing

Home Page: http://android.processing.org

Java 87.23% GLSL 1.37% Python 0.08% Processing 11.18% Groovy 0.14%
android mobile learning education art design ar vr

processing-android's Introduction

Processing for Android

This is the main repository for Processing for Android. It includes the core library inside the core folder, and the mode itself in the root. See the wiki for build instructions.

processing-android's People

Contributors

b2renger avatar benfry avatar boubpopsyteam avatar codeanticode avatar deerajtheepshi avatar gohai avatar imilka avatar irealva avatar jakubvaltar avatar joshgiesbrecht avatar jwill avatar kfrajer avatar kiwistrongis avatar loadus avatar lonnen avatar manav-mj avatar manindra29 avatar notnullnotvoid avatar omerjerk avatar pineapplegreentea avatar psksvp avatar qianlvable avatar ranaaditya avatar reas avatar rtomas avatar rupak0577 avatar rupeshkumar22 avatar suheb avatar syamsundarkirubakaran avatar ybakos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

processing-android's Issues

Processing 2.1.1 error 542: Unable to resolve project target

Issue by KBEAST
Monday Feb 17, 2014 at 04:33 GMT
Originally opened as processing/processing-android-archive#61


Hi,

I am running the sample, and I am getting below error.
All my tools are latest and eclipse is working with Android SDK with the latest on my window 7 64bit. But I still can't get Processing to work on Android mode with this latest version.

Thanks for the help :)

-set-mode-check:

-set-debug-files:

-check-env:
Android SDK Tools Revision 22.3.0
Installed at C:\Program Files (x86)\Android\android-sdk\adt-bundle-windows-x86_64-20131030\sdk

-setup:
[echo] Project Name: Planets
Project Type: Application

-set-debug-mode:

-debug-obfuscation-check:

-pre-build:

-build-setup:
Using latest Build Tools: 19.0.1
[echo] Resolving Build Target for Planets...

BUILD FAILED
C:\Program Files (x86)\Android\android-sdk\adt-bundle-windows-x86_64-20131030\sdk\tools\ant\build.xml:542: Unable to resolve project target 'android-10'

Total time: 0 seconds

Proposal for a fix of a synchronisation issue with the dequeueing of the eventQueue in android-core.

Issue by wouter-vdb
Sunday May 26, 2013 at 11:55 GMT
Originally opened as processing/processing-android-archive#38


I had a consistent problem while handling touch-events in an application that has noLoop() in setup() and uses redraw() whenever the screen needs to be redrawn after a relevant touch-event. The exception "Nothing left on the event queue" was thrown from InternalEventQueue.remove() at arbitrary moments.

The problem was that two threads tried to dequeue the eventsQueue concurrently. The GLThread called PApplet.dequeueEvents() from PApplet.handleDraw() concurrently with the main thread which called PApplet.dequeueEvents() from PApplet.postEvent(), which is called from PApplet.nativeMotionEvent(). Below you can find a trace of a concrete situation.

I'm not deeply familiar with the implementation, but it seems that PApplet.postEvent() should not call PApplet.dequeueEvents() when either looping or redraw is true. This would be fixed as follows:

public void postEvent(processing.event.Event pe) {
  eventQueue.add(pe);
-  if (!looping) {
+  if (!looping && !redraw) {
    dequeueEvents();
  }
}

It might also be necessary to synchronize dequeueEvents() to avoid a potential race condition when postEvent() in the main thread checks the (!looping && !redraw) condition right before redraw is set to true in redraw(). The main thread would then continue with dequeueEvents() while the GLThread would at some point call handleDraw() which would call dequeueEvents() concurrently.

02 x 05-26 10:51:49.267: I/System.out(8800): >> handleDraw() - count: 0, offset: 0, thread: Thread[GLThread 10,5,main]
03   05-26 10:51:49.277: I/System.out(8800): >> nativeMotionEvent() - count: 0, offset: 0, thread: Thread[main,5,main]
04   05-26 10:51:49.277: I/System.out(8800): >> postEvent() - count: 0, offset: 0, thread: Thread[main,5,main]
05   05-26 10:51:49.277: I/System.out(8800): >> InternalEventQueue.add() - count: 0, offset: 0, thread: Thread[main,5,main]
06   05-26 10:51:49.277: I/System.out(8800): << InternalEventQueue.add() - count: 1, offset: 0, thread: Thread[main,5,main]
07 x 05-26 10:51:49.287: I/System.out(8800): >> dequeueEvents() - count: 1, offset: 0, thread: Thread[GLThread 10,5,main]
08   05-26 10:51:49.287: I/System.out(8800):  - looping: false, thread: Thread[main,5,main]
09 x 05-26 10:51:49.287: I/System.out(8800): >> InternalEventQueue.available() - count: 1, offset: 0, thread: Thread[GLThread 10,5,main]
10   05-26 10:51:49.287: I/System.out(8800): >> dequeueEvents() - count: 1, offset: 0, thread: Thread[main,5,main]
11 x 05-26 10:51:49.287: I/System.out(8800):  - while-step in dequeueEvents() - count: 1, offset: 0, thread: Thread[GLThread10,5,main]
12   05-26 10:51:49.287: I/System.out(8800): >> InternalEventQueue.available() - count: 1, offset: 0, thread: Thread[main,5,main]
13   05-26 10:51:49.287: I/System.out(8800):  - while-step in dequeueEvents() - count: 1, offset: 0, thread: Thread[main,5,main]
14 x 05-26 10:51:49.297: I/System.out(8800): >> InternalEventQueue.remove() - count: 1, offset: 0, thread: Thread[GLThread 10,5,main]
15 x 05-26 10:51:49.297: I/System.out(8800): << InternalEventQueue.remove() - count: 0, offset: 0, thread: Thread[GLThread 10,5,main]
16 x 05-26 10:51:49.297: I/System.out(8800): >> InternalEventQueue.available() - count: 0, offset: 0, thread: Thread[GLThread 10,5,main]
17   05-26 10:51:49.297: I/System.out(8800): >> InternalEventQueue.remove() - count: 0, offset: 0, thread: Thread[main,5,main]

This trace is produced by these trace instructions:

public void handleDraw() {
  println(">> handleDraw() - count: " + eventQueue.count + ", offset: "
+ eventQueue.offset + ", thread: " + Thread.currentThread());
  ...
}

protected void nativeMotionEvent(android.view.MotionEvent motionEvent) {
  println(">> nativeMotionEvent() - count: " + eventQueue.count + ",
offset: " + eventQueue.offset + ", thread: " + Thread.currentThread());
  ...
}

class InternalEventQueue {
  ...
  synchronized void add(Event e) {
    println(">> InternalEventQueue.add() - count: " + count + ",
offset: " + offset + ", thread: " + Thread.currentThread());
    if (count == queue.length) {
      queue = (Event[]) expand(queue);
    }
    queue[count++] = e;
    println("<< InternalEventQueue.add() - count: " + count + ",
offset: " + offset + ", thread: " + Thread.currentThread());
  }

  synchronized Event remove() {
    println(">> InternalEventQueue.remove() - count: " + count + ",
offset: " + offset + ", thread: " + Thread.currentThread());
    if (offset == count) {
      throw new RuntimeException("Nothing left on the event queue.");
    }
    Event outgoing = queue[offset++];
    if (offset == count) {
      // All done, time to reset
      offset = 0;
      count = 0;
    }
    println("<< InternalEventQueue.remove() - count: " + count + ",
offset: " + offset + ", thread: " + Thread.currentThread());
    return outgoing;
  }

  synchronized boolean available() {
    println(">> InternalEventQueue.available() - count: " + count + ",
offset: " + offset + ", thread: " + Thread.currentThread());
    return count != 0;
  }
}

public void postEvent(processing.event.Event pe) {
  println(">> postEvent() - count: " + eventQueue.count + ", offset: "
+ eventQueue.offset + ", thread: " + Thread.currentThread());
  eventQueue.add(pe);
  println(" - after add in postEvent() - count: " + eventQueue.count +
", offset: " + eventQueue.offset + ", thread: " +
Thread.currentThread());
  println(" - looping: " + looping + ", thread: " +
Thread.currentThread());

  if (!looping) {
    dequeueEvents();
  }
}

protected void dequeueEvents() {
  println(">> dequeueEvents() - count: " + eventQueue.count + ",
offset: " + eventQueue.offset + ", thread: " + Thread.currentThread());
  //boolean available = eventQueue.available();
  while (eventQueue.available()) {
    println(" - while-step in dequeueEvents() - count: " +
eventQueue.count + ", offset: " + eventQueue.offset + ", thread: " +
Thread.currentThread());
    Event e = eventQueue.remove();
    ...
  }
}

wouter-vdb included the following code: https://github.com/processing/processing-android-archive/pull/38/commits

Unable to locate javac

Issue by smoothmango
Monday Jan 27, 2014 at 19:55 GMT
Originally opened as processing/processing-android-archive#60


I just downloaded Processing 2.1.1, and when I try to run my Android sketch, I get the following error in the console:
[javac] Unable to locate an executable at "/Applications/Processing.app/Contents/PlugIns/jdk1.7.0_51.jdk/Contents/Home/jre/bin/javac" (-1)
If I open the Processing.app package and navigate to the mentioned folder, I find an executable called java but nothing called javac. I tried renaming java to javac but this just creates more (and different) errors.

Processing can't create emulator.

Issue by vormplus
Friday Jun 07, 2013 at 14:24 GMT
Originally opened as processing/processing-android-archive#41


There is a problem when you start a sketch for the first time and have multiple Android APIs installed on your machine. I tried creating the virtual device with the command I found in the Processing console. If there is more than one ABI installed on the machine, you need to specify which one to use. Adding --abi x86 at the end of this command does create the right virtual device. Sketches can run without a problem now.

This is the output of the terminal:

Cloudswimmers-MBP:tools janvantomme$ ./android create avd -n Processing-0217 -t android-10 -c 64M -s WVGA800
Valid ABIs: armeabi, x86
Error: This platform has more than one ABI. Please specify one using --abi.
Cloudswimmers-MBP:tools janvantomme$ ./android create avd -n Processing-0217 -t android-10 -c 64M -s WVGA800 --abi x86
Android 2.3.3 is a basic Android platform.
Do you wish to create a custom hardware profile [no]n
Created AVD 'Processing-0217' based on Android 2.3.3, Intel Atom (x86) processor,
with the following hardware config:
hw.lcd.density=240
vm.heapSize=24
hw.ramSize=256
Cloudswimmers-MBP:tools janvantomme$

mousePressed event lost after menu key pressed (on newer Android versions only?)

Issue by joshgiesbrecht
Thursday Jul 04, 2013 at 17:16 GMT
Originally opened as processing/processing-android-archive#44


As per this on the forum:
http://forum.processing.org/topic/the-mouse-event-always-be-eaten-one-by-the-menu-button

After the menu button is pressed, the next touch on the screen does not generate a mousePressed() event. (So you have to tap the screen once after turning a menu on or off before it responds normally.)

This happens on a Nexus 7 (android 4.2.something) and on an SG3 (Android 4.1.2), but it does NOT happen on my just-slightly-older Samsung Galaxy Ace iix (Android 4.0.4). So this might be only happening on devices that are 4.1 and higher. (But I've only tested on these three devices so far.)

Edit: It's not only mousePressed events that disappear. Keypress events can also be lost. eg. After pressing Menu, the next tap of Menu is ignored, and then after that the next whatever will happen normally. Same with the back button after pressing Menu.

curveVertex bug

Issue by yeatsJJ
Monday Jul 29, 2013 at 00:10 GMT
Originally opened as processing/processing-android-archive#48


Processing Android curveVertex bug,
the code is as follows:
fill(#FFEC8B);
beginShape();
curveVertex(0, 10);
curveVertex(0, 10);
curveVertex(100, 10);
curveVertex(100, 30);
curveVertex(0, 30);
curveVertex(0, 30);
endShape();

fill(#FFB6C1);
beginShape();
curveVertex(0, 50);
curveVertex(0, 50);
curveVertex(100, 50);
curveVertex(100, 80);
curveVertex(0, 80);
curveVertex(0, 80);
endShape();

The result is the color of the first shape will be the color of the second.
you can run it in android environment

Update Android section of Processing Wiki

Issue by jeffThompson
Tuesday May 21, 2013 at 14:57 GMT
Originally opened as processing/processing-android-archive#36


Since the Android section of the Processing Wiki seems to be the main source of install, setup, and coding instructions for the Android mode, I'd like to suggest that it could use a fairly extensive revision. I'd be happy to volunteer for the job, but wanted to first engage the other stakeholders in conversation and see what made the most sense, or if there were opinions about what to add/change.

My suggestions are:

  • The single page is now much too long, and should be broken into separate pages
  • I would suggest a page for install/setup/testing, basics, and maybe separate pages for individual examples like touch, internet, sensors, icons, etc like we have for the desktop version
  • If anyone has experience uploading a Processing-built app to Google Play, I think that would be a very interesting tutorial too
  • An overall cleanup of the text to be easier to read (I like verbose, but it can be a bit hard to follow, speaking from my experience setting up the IDE from the Wiki)

I would also guess that some of the new additions might be helpful filling out the example sketches - I'd be delighted to help with that as well.

Fatal error while starting 3D sketch on Android device

Issue by RafaelNadal
Saturday Apr 12, 2014 at 19:06 GMT
Originally opened as processing/processing-android-archive#65


I have processing 2.0.3 for win7 64bit. I can run all my 3D sketches on Samsung SIII with android 4.2.2 and 4.3.

On my HP Slate 7 HD with Android 4.2.2 I can run any non-3D sketches. HP Slate 7 HD supports OpenGL ES 1.0, 1.1, 2.0 and runs well non-Processing 3D apps.But when I start any 3D sketch (the same which run well on Samsung) I have the following error (showing up at the bottom in Processing IDE):

FATAL EXCEPTION: GLThread 873
java.lang.RuntimeException: Cannot link shader program:
at processing.core.PGraphics.showException(Unknown Source)
at processing.opengl.PShader.init(Unknown Source)
at processing.opengl.PShader.getAttributeLoc(Unknown Source)
at processing.opengl.PGraphicsOpenGL$LightShader.loadAttributes(Unknown Source)
at processing.opengl.PGraphicsOpenGL$TexlightShader.loadAttributes(Unknown Source)
at processing.opengl.PGraphicsOpenGL.getPolyShader(Unknown Source)
at processing.opengl.PShapeOpenGL.renderPolys(Unknown Source)
at processing.opengl.PShapeOpenGL.render(Unknown Source)
at processing.opengl.PShapeOpenGL.draw(Unknown Source)
at processing.core.PGraphics.shape(Unknown Source)
at processing.core.PApplet.shape(Unknown Source)
at processing.test.texture_cube.texture_cube.draw(texture_cube.java:40)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.opengl.PGL$AndroidRenderer.onDrawFrame(Unknown Source)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1516)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
}

What could be the reason for that?

Thanks!

External config of Android SDK version

Issue by emnullfuenf
Monday Dec 30, 2013 at 13:00 GMT
Originally opened as processing/processing-android-archive#58


Please enable an external configuration of the Android SDK version.

Currently it's static set in AndroidBuild.java. It could be added to mode.properties file.

I recompiled processing-android for SDK 19 (Android 4.3) in order to enable USB support without problems. Is there an other way to define the Android SDK version?

Creating a custom renderer

Issue by kiwistrongis
Thursday Mar 13, 2014 at 00:42 GMT
Originally opened as processing/processing-android-archive#64


Moved from processing/processing#2390
Hi there, just working on something that will resolve the problems SMT was having with the latest version of processing - a custom renderer. I have it working fully on the desktop on Windows and Linux ( can't test on mac ). I ran into a problem on Android however.

This works on the desktop:

void setup(){
    size( 800, 600, Renderer.class.getName());
}
void draw(){
    background( 30);
    fill( 200, 100, 100, 200);
    noStroke();
    rect( 10, 10, 100, 100);
}
/*
public int sketchWidth() {
    return 800;
}
public int sketchHeight() {
    return 600;
}
public String sketchRenderer() {
    return Renderer.class.getName();
}
*/
public static class Renderer extends PGraphics3D {
    public Renderer(){
        super();}
}

However this fails on android:

void setup(){
    //size( 800, 600, Renderer.class.getName());
}
void draw(){
    background( 30);
    fill( 200, 100, 100, 200);
    noStroke();
    rect( 10, 10, 100, 100);
}

public int sketchWidth() {
    return 800;
}
public int sketchHeight() {
    return 600;
}
public String sketchRenderer() {
    return Renderer.class.getName();
}

public static class Renderer extends PGraphics3D {
    public Renderer(){
        super();}
}

With the following logcat output:

D/AndroidRuntime(17635): 
D/AndroidRuntime(17635): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
D/AndroidRuntime(17635): CheckJNI is OFF
D/AndroidRuntime(17635): Calling main entry com.android.commands.am.Am
D/AndroidRuntime(17635): Shutting down VM
D/AndroidRuntime(17649): 
D/AndroidRuntime(17649): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
D/AndroidRuntime(17649): CheckJNI is OFF
D/AndroidRuntime(17649): Calling main entry com.android.commands.pm.Pm
D/AndroidRuntime(17649): Shutting down VM
I/AndroidRuntime(17649): NOTE: attach of thread 'Binder Thread #3' failed
D/AndroidRuntime(17713): 
D/AndroidRuntime(17713): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
D/AndroidRuntime(17713): CheckJNI is OFF
D/AndroidRuntime(17713): Calling main entry com.android.commands.am.Am
D/AndroidRuntime(17713): Shutting down VM
I/AndroidRuntime(17713): NOTE: attach of thread 'Binder Thread #3' failed
D/AndroidRuntime(17741): Shutting down VM
E/AndroidRuntime(17741): FATAL EXCEPTION: main
E/AndroidRuntime(17741): java.lang.RuntimeException: Unable to start activity ComponentInfo{processing.test.asdf/processing.test.asdf.asdf}: java.lang.NullPointerException
E/AndroidRuntime(17741):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1960)
E/AndroidRuntime(17741):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1985)
E/AndroidRuntime(17741):    at android.app.ActivityThread.access$600(ActivityThread.java:127)
E/AndroidRuntime(17741):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151)
E/AndroidRuntime(17741):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(17741):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(17741):    at android.app.ActivityThread.main(ActivityThread.java:4447)
E/AndroidRuntime(17741):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(17741):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(17741):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime(17741):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/AndroidRuntime(17741):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(17741): Caused by: java.lang.NullPointerException
E/AndroidRuntime(17741):    at android.view.ViewGroup.addViewInner(ViewGroup.java:3342)
E/AndroidRuntime(17741):    at android.view.ViewGroup.addView(ViewGroup.java:3214)
E/AndroidRuntime(17741):    at android.view.ViewGroup.addView(ViewGroup.java:3184)
E/AndroidRuntime(17741):    at processing.core.PApplet.onCreate(Unknown Source)
E/AndroidRuntime(17741):    at android.app.Activity.performCreate(Activity.java:4466)
E/AndroidRuntime(17741):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1092)
E/AndroidRuntime(17741):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1924)
E/AndroidRuntime(17741):    ... 11 more

Help of any kind would be nice. Advice as to where to look and the like would be great.

path to external (non-standard) sketch directory not referenced in build of android tool for processing Edit

Issue by ld26464
Saturday Jul 13, 2013 at 16:39 GMT
Originally opened as processing/processing-android-archive#45


  • Export to Android device (run on device) hangs at "Waiting for Device to become available"
  • Export to Emulator (run on emulator) never builds emulator, fails.

from the forum post:
So... I found another reason that you may get caught by this problem. (note Mac OS 10.8.4, Processing 2.0.1)
I have been struggling, struggling, struggling, trying all other proposed solutions. Didn't work. But what did is...

I normally put my sketches in a folder that is not the standard location. Furthermore it is not on the computer's 'home' disk.

I found that when I put the sketches into Processing's expected home directory and reassigning the path in preferences (and without doing any additional installs โ€“ I've done everything as said before) the sketch loaded to my external device properly, and also for the first time booted up an emulator (it was never creating one before).
I then reassigned the path to my preferred processing sketch directory on the external drive and it worked building from there too.

So. Processing has an issue with not updating a path somewhere when Android is installed
If you do not use the standard sketch path, you are screwed as something is missing when Processing tries to do the build.
But resetting the path to your preferred sketch folder location after the Android installs fixes this.
Whether it stays fixed is another matter.

Keyboard doesn't open using MENU button on Nexus (and perhaps other devices)

Issue by jeffThompson
Friday May 17, 2013 at 21:33 GMT
Originally opened as processing/processing-android-archive#34


Having a Nexus tablet and no other Android devices, I can only say that the keyboard does not open when holding the MENU button (the suggested method on the Wiki).

To fix this, I've used the following code:

// use menu button to toggle keyboard
if (key == CODED && keyCode == MENU) {
    // turn on keyboard - via: http://stackoverflow.com/a/2348030
    InputMethodManager inputMgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
      inputMgr.toggleSoftInput(0, 0);
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.