javascript Objected Oriented Framework
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

lluvia Project

lluvia Project:: A Javascript community framework
Copyright (C) <2009>  <txemagon, imasen>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <>.

Further information at <>



lluvia Project is a javascript framework that intends to provide an object oriented ruby-like basis. It should help for building cool effects for web applications. It comes along with a minimum multithreading support and messaging system. It also has a Mathematics library useful for games.

Files & Directories

File Description This file.
BUILDING Instrucitions for getting the software running.
GLOSSARY Specific words and jargon.
COPYRIGHT Legal advice included in source files as a property
LICENSE gpl-3.0 Full license text.
doc Project documentation, including emails, conversations or diagrams.
src lluvia source code.
util private tools for lluvia development.
data Data for testing.
test TDD framework to use into every package.
vendor lluvia third party applications provided as an example.


After pulling the code, if you want to make an application, you should place your code under vendor directory. There are some requirements to be met. Inside the html file include lluvia.js and call bringLLuvia(). The debug level can be provided as an integer parameter to gather more runtime information.

Also include one file, typically javascript/dependencies.js, with the name of the files that make up your application. Take the following snippet as an example:

$K_app_dependencies = [
    {   module: "Boids", 
        description: "Boids Demo App.", 
        path: "", 
        files: [ 
            { name: "brain/behavior_modifier.js",  description: "Self protection behaviors." },
            { name: "brain/behavior.js",           description: "Abstract Behavior." },
            { name: "brain/security_behavior.js",  description: "Self protection behaviors." },
            { name: "brain/itinerant_behavior.js", description: "Definition of itinerant behaviors." },
            { name: "brain/behavior_group.js",     description: "Group of related behaviors." },
            { name: "brain/brain.js",              description: "Boid Brain." },
            { name: "boid.js",                     description: "One Boid." },
            { name: "world_interface.js",          description: "World Interface." },
            { name: "boid_editor.js",              description: "Boid panel editor." },
            { name: "world.js",                    description: "The world where all boids live." },
            { name: "main.js",                     description: "main function." },

Whenever a function main() is found will be automatically called after lluvia loading.

If you are planning to develop within lluvia make sure to create the tests first. Every folder has a test directory. Have a look there at the very begining.

For creating a new library, util/make-module can help you with the scaffolding.

To see what's remaining util/what_to_do .