Coder Social home page Coder Social logo

wiccasoft / lycheejs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sirg2003/lycheejs

0.0 0.0 0.0 44.63 MB

:seedling: Next-Gen AI-Assisted Isomorphic Application Engine for Embedded, Console, Mobile, Server and Desktop

Home Page: https://lychee.js.org

License: Creative Commons Attribution Share Alike 4.0 International

JavaScript 93.69% Shell 4.23% AppleScript 0.01% Vim Script 0.09% HTML 1.34% Smarty 0.43% CSS 0.21%

lycheejs's Introduction

lychee.js (2017-Q2)

brought to you as libre software with joy and pride by Artificial Engineering.

Support our libre Bot Cloud via BTC 1CamMuvrFU1QAMebPoDsL3JrioVDoxezY2.

IMPORTANT NOTICE

AI went live on 1. Sept 2016. Make sure that :balloon: AI History starts here is on your master branch so that the ./bin/maintenance auto-update integration works fine. Otherwise re-fork your fork or force-pull from upstream.

Work-in-Progress (aka alpha)

These are the things that we are currently working on:

  • lychee.ai.neat (ES/HyperNEAT AI) is being refactored and unstable (feature/neat branch).
  • lychee.net.protocol.MQTT is being implemented to support SCADA systems (feature/mqtt branch).
  • lychee.js Guide is subject to change (to integrate new AI stack).

ELI5 - What is lychee.js?

Okay. I kind of failed to explain what lychee.js is because there's currently no words for something like it in our language. So I'm trying to explain why which feature was integrated and what benefits resulted in its history of development.

First it was a Game / App Engine that had the idea to reuse components across all environments using so-called Fertilizer Adapters with a strong core definition system that allowed feature detection and automated isomorphic builds from and to every single platform it supports using the lychee.js Fertilizer.

Then it got a strong serialization / deserialization concept that allowed simulations across all platforms. Errors could be reproduced everywhere, even network traffic and user interactions were put in event graphs and identified by neural networks to figure out what module (in the flow-based-programming sense) had corrupt data.

Then it got an evolutionary lychee.ai Stack (backpropagated ES/HyperNEAT) that allowed an AI to learn combinations of all Definitions using a Module Pattern or Composite Pattern. Class Pattern failed, because Classes are a time abstraction so they suck in complexity. Deal with it :)

Then it got a generic plug/play neural network support; so that the lychee.policy Stack allowed to generically translate every property in all Composites into what neural networks can understand. As everything in lychee.js is serializable and uses a Composite Pattern, things like traffic sharding, automated layouting or animation learning and debugging of it got inclusive.

Then it got an easier tool to create new boilerplates which allowed the possibility to reuse other projects as libraries and vice versa. Every single lychee.js Project or Library was fully isomorphic and could be forked, modified, back-merged, or included as a library using the lychee.js Breeder. Things like A/B testing new Composites or Definitions in-place now were a matter of literally seconds.

Then the knowledge graph was reused to build a better fuzz-testing tool, the lychee.js Strainer, using some kind of tree that is similar to a multi-dimensional-quad-tree to identify similar data and behaviour for more efficient ANN testing and evaluation; so that ANNs were now able to learn what properties and methods and their relations (in the sense of states) mean and do.

Then the lychee.js Harvester got a peer-to-peer network infrastructure that allowed to share all knowledge graphs across the internet. That meant every single lychee.js Project on planet Earth now contributed to an AI learning how to build software and therefore helped auto-improving all written code that depends on each other using fuzz tests, flow graph tests and above Composite Pattern idea for evaluation of newly invented Composites.

Then the lychee.js Studio was built, trying to use above suggestions so that developers have some kind of "Zen Coding"-like autocompletion for Definitions they want to build, leveraging the first intelligent auto-complete using a mix of reinforced evolutionary learning and bayesian learning.

Oh, and it can compile, analyze, bugfix and improve itself, too. That's essentially what the ./bin/configure.sh script does when it builds and distributes the lychee.js Library.

Then I thought well, I guess I'm mad - and have no idea how to explain what this Engine has gotten to be. - @cookiengineer

Overview

The lychee.js Project started in 2012 and is in active development. The following Repositories are related to the lychee.js Engine:

The following Accounts are related to the lychee.js Engine:

Features

The lychee.js Engine aims to deliver Total Automation through Artificial Intelligence and better Software Architecture.

Everything listed here requires zero lines of code overhead and is already fully integrated in the lychee.js Boilerplate:

The lychee.js Core and Definition System (lychee and legacy):

  • Isomorphic Application Engine (runs pretty much everywhere)
  • Language is only ES5/ES6 JavaScript Code, nothing else
  • Composite Pattern inspired Entity/Component System
  • Definition System embraces Simplicity and Feature Detection
  • Sandboxing System embraces automated Error Reports, Analytics and Debugging
  • Serialization System allows Re-Simulation on any Platform
  • Built-In Offline Storage Management and Network Synchronization

The lychee.js Software Bots:

  • Graphical Asset Management and Entity/Scene Design Tool (Studio)
  • Graphical Project Management and Server Maintenance Tool (Ranger)
  • Command-Line Continous Integration Server (Harvester)
  • Command-Line Wizard for Projects and Libraries (Breeder)
  • Command-Line Builder and Cross-Compiler (Fertilizer)
  • Command-Line Fuzz-Tester and Code-Refactorer (Strainer)

Features of the lychee.js Software Bots:

  • Automated Code Refactoring, Bug Fixing and Code Improvements
  • Automated Design Tracking, Layout and Flow Optimization
  • Automated Packaging for Embedded, Console, Mobile, Desktop and Server Apps
  • Automated Deployment via git and Live-Updates
  • Automated Reactive/Responsive UI/UX Components
  • Automated Debugging, Network and UI/UX Flow Analysis
  • Automated Testing and Integration with the AI
  • Automated Networking (Peer-to-Peer HTTP1.1/2.0 and WS13 with Local/Global Discovery)
  • Automated Network Services and Traffic Balancing/Sharding

Platform / Fertilizer Support

The target platforms are described as so-called Fertilizers. Those Fertilizers cross-compile everything automagically using a serialized lychee.Environment that is setup in each project's or library's lychee.pkg file.

Target Fertilizer Package armv7 x86 x86_64
Browser html zip, html x x x
GNU/Linux html-nwjs, node, node-sdl bin x x x
OSX html-nwjs, node, node-sdl app, bin x
Windows html-nwjs, node, node-sdl exe x x
Android html-webview, node, node-sdl apk, bin x x x
BlackberryOS html-webview, node, node-sdl apk, bin x x x
FirefoxOS html-webview zip x x x
iOS html x
Ubuntu Touch html-webview, node deb, bin x x x

The iOS Fertilizer has currently no support for cross-compilation due to XCode's gcc limitations. You can still create an own WebView iOS App and use the html platform adapter.

Quickstart Guide

If you want to install lychee.js, the best way is to follow through the Install Guide or the lychee.js Guide's Quickstart section.

If you want to develop lychee.js Projects or Libraries, the lychee.js Guide helps you to get started easily.

Please let us know if we can improve anything in these documents by opening up an Issue.

Contributor Manuals

Help

If you have any questions, feel free to join us on #artificial-engineering @ freenode.

These are our official social media channels:

License

The lychee.js Engine (defined as /libraries and /bin inside the lycheejs repository) is (c) 2012-2017 Artificial-Engineering and released under MIT / Expat license.

The projects (defined as /projects inside the lycheejs repository) and their Assets are licensed under CC BY-SA 4.0 license.

The lychee.js Runtimes (defined as /bin/runtime or the lycheejs-runtime repository) are owned and copyrighted by their respective owners and those may be shipped under a different license.

As of now, the runtimes are licensed under the following terms:

  • MIT license for node platform (node.js)
  • MIT license for html-nwjs platform (nw.js)
  • MIT license for html-webview platform and (c) 2012-2017 Artificial Engineering
  • Apache license for Android SDK toolchain

The generated code by our Artificial Intelligence (namely the GitHub Account @humansneednotapply or the commit's e-mail address robot [ insert an at here] artificial.engineering) is released under GNU GPL 3 license.

The date of each commit is equivalent to the date (Central European Timezone) of claimed copyright and license, no matter from which timezone or physical location they were commited from.

The generated code by the Artificial Intelligence and its GNU GPL 3 license overrules the MIT / Expat license in every case, with no exceptions. The code is distributed in a libre way to guarantee free and open knowledge distribution for our Software Bots.

The owner of the GNU GPL 3 licensed code is the Artificial-Engineering project, though the legal entity as of today has to be a human person (@cookiengineer) under European law and the Directive 2006/116/EC (p.14 and Art. 1 p.4).

Hereby @cookiengineer grants you permission to reuse the generated code by the Artificial Intelligence under above terms.

You are not allowed to change those terms without @cookiengineer's consent.

lycheejs's People

Contributors

cookiengineer avatar

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.