Giter Club home page Giter Club logo

agency-swarm-lab's Introduction

Agency Swarm Lab

Welcome to the Agency Swarm Lab repository! This is a collaborative space where we showcase the incredible capabilities of custom AI agent teams developed using the Agency Swarm framework.

Getting Started

Local Installation

To get started with creating your own custom AI agency using the Agency Swarm Lab, follow these detailed steps:

  1. Clone the Repository:

    git clone https://github.com/VRSEN/agency-swarm-lab.git
  2. Install Global Requirements: Navigate to the root directory of the cloned repository and install the global requirements using the requirements.txt file. This will set up the necessary environment for running the Agency Swarm framework.

    cd agency-swarm-lab
    pip install -U -r requirements.txt
  3. Choose an Agency: Decide which agency you would like to run or explore. Each agency is contained in its own folder within the repository.

  4. Install Agency-Specific Requirements: Navigate into the directory of the agency you've chosen. Each agency may have its own requirements.txt file, which specifies additional dependencies necessary for that particular agency.

    cd path/to/your-chosen-agency
    pip install -r requirements.txt
  5. Set Up the .env File: All agencies in the Agency Swarm Lab utilize OpenAI's API for their operations. To enable this functionality, you must provide your OpenAI API key.

    • Create a .env file in the chosen agency's folder.

    • Add your OpenAI API key to this file as follows:

      OPENAI_API_KEY='your_openai_api_key_here'
      # ...add other environment variables here if needed
      

    Dropping this .env file into the agency folder allows the system to authenticate with OpenAI's services seamlessly.

  6. Run Your Agency: With the environment properly set up, you are now ready to activate your agency. Execute the following command within the agency's directory:

    python agency.py

    This command starts the operation of your custom AI agency, demonstrating the collaborative power of AI agents in accomplishing complex tasks.

Docker Installation (recommended)

Running agencies in docker is safer as it does not affect your local file system. You will need to ensure that you had docker installed. For installation instructions, please refer to the official Docker documentation.

  1. Clone and navigate into the Repository.

    git clone https://github.com/VRSEN/agency-swarm-lab.git
    cd agency-swarm-lab
  2. Build the Docker Image.

    docker build -t vrsen/agency-swarm -f path/to/your/Dockerfile .

    The command breakdown is as follows:

    • -t vrsen/agency-swarm is the name you give to the Docker image that you are generating.
    • -f path/to/your/Dockerfile specifies the path to the Dockerfile that you will use to build the image. The Dockerfile is located in the root of the repository.
  3. Run the Docker Image: Use this command from the root of the repository. Make sure to replace <YourOpenAIKey> with your actual OpenAI API key.

    docker run -it -v ./:/app --rm -p 7860:7860 -e OPENAI_API_KEY=<YourOpenAIKey> vrsen/agency-swarm

    The command breakdown is as follows:

    • -it is used to start an interactive session with the Docker container.
    • --rm is used to delete the container after you have finished using it (any files in your mapped folder will be safe).
    • -p 7860:7860 port forwards port 7860 for Gradio, should you wish to run Gradio from inside the Docker container after generating the code.
    • -v ./:/app maps the current directory with all the agencies to /app inside the Docker container.
    • -e OPENAI_API_KEY=<YourOpenAIKey> is where you put your OpenAI API key.
    • vrsen/agency-swarm the name you gave to the Docker image that you generated.
  4. Install Agency-Specific Requirements (inside Docker Image): Navigate into the directory of the agency you've chosen inside your docker image and install the requirements.

    cd path/to/your-chosen-agency
    pip install -r requirements.txt
  5. Run agency.py (inside Docker Image): With the environment properly set up, you are now ready to activate your agency. Execute the following command within the agency's directory:

    python agency.py

Contributing

We encourage contributions to the Agency Swarm Lab! If you have developed a custom AI agency using the Agency Swarm framework and would like to share it, please submit a pull request with your project.

Stay Updated

Don't forget to subscribe to our YouTube channel for tutorials and updates on the Agency Swarm framework and the amazing projects being developed with it.

Thank you for exploring the Agency Swarm Lab. Together, let's transform the future of work with AI.

agency-swarm-lab's People

Contributors

satal avatar vrsen 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

agency-swarm-lab's Issues

Rename "requriements" in MetaMarkAgency folder

Just started playing around with this, and saw this type in the requirements.txt file within the MetaMarkAgency folder.

[Note: so far, this seems more complicated than the previous Agency-Swarm, but will hopefully get some success soon]

Error 422: Missing "Instructions" field

openai.UnprocessableEntityError: Error code: 422 - {'detail': [{'type': 'missing', 'loc': ['body', 'instructions'], 'msg': 'Field required', 'input': {'assistant_id': 'memgpt_chat', 'additional_instructions': None, 'max_completion_tokens': None, 'max_prompt_tokens': None, 'stream': False, 'temperature': None, 'tool_choice': None, 'truncation_strategy': None}}]}

When running the built-in demos, after I've configured the appropriate values. The interface loads in browser, I send a message and boom, I get this error. Running Llama 3 on MemGPT with VLLM below.

Local LLM

Not really an issue per say. Is there any way to get this to use a local LLM server like Ollama or LM Studio instead of having to pay OpenAI fees? Other than that, great work.

Feature Request: Add Support for Additional Large Language Models (LLMs) - Local ollama, Coral command-r , and Others"

"Feature Request: Enhance Project with Support for Additional Large Language Models (LLMs) - Including Local AI Assistants

I've been utilizing your project, and it's truly impressive! I wanted to propose some enhancements that could take it to even greater heights. How about incorporating AI-powered assistants such as OpenAI's ChatGPT or Cohere's Coral, alongside local options like Ollama and other similar tools? Integrating these diverse tools would provide users with a range of interactive and intelligent features, greatly enriching their experience.

For instance, with ChatGPT, users could seamlessly ask questions, generate code snippets, and receive detailed explanations. Meanwhile, Coral, Cohere's innovative AI assistant, offers a smooth and intuitive conversational interface. Adding support for these tools, including local assistants like Ollama, would not only elevate your project but also empower users with smart and intuitive interactions while addressing privacy and data security concerns.

I'm eager to hear your thoughts on these suggestions and see how the project evolves. Keep up the fantastic work!"

httpx.ReadTimeout: The read operation timed out

I get a ReadTimeout how can I increase the
THREAD:[ PlannerAgent -> Devid ]: URL https://platform.openai.com/playground?assistant=asst_7Fi6GjmuAxHSzxX6Gvv0RM40&mode=assistant&thread=thread_4oI9KfDLCScEtjOU8CuTL656
Exception in thread Thread-7 (get_completion_stream):
Traceback (most recent call last):
File "/home/seluser/venv/lib/python3.11/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions
yield
File "/home/seluser/venv/lib/python3.11/site-packages/httpx/_transports/default.py", line 113, in iter
for part in self._httpcore_stream:
File "/home/seluser/venv/lib/python3.11/site-packages/httpcore/_sync/connection_pool.py", line 367, in iter
raise exc from None
File "/home/seluser/venv/lib/python3.11/site-packages/httpcore/_sync/connection_pool.py", line 363, in iter
for part in self._stream:
File "/home/seluser/venv/lib/python3.11/site-packages/httpcore/_sync/http11.py", line 349, in iter
raise exc
File "/home/seluser/venv/lib/python3.11/site-packages/httpcore/_sync/http11.py", line 341, in iter
for chunk in self._connection._receive_response_body(**kwargs):
File "/home/seluser/venv/lib/python3.11/site-packages/httpcore/_sync/http11.py", line 210, in _receive_response_body
event = self._receive_event(timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/seluser/venv/lib/python3.11/site-packages/httpcore/_sync/http11.py", line 224, in _receive_event
data = self._network_stream.read(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/seluser/venv/lib/python3.11/site-packages/httpcore/_backends/sync.py", line 124, in read
with map_exceptions(exc_map):
File "/usr/lib/python3.11/contextlib.py", line 158, in exit
self.gen.throw(typ, value, traceback)
File "/home/seluser/venv/lib/python3.11/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ReadTimeout: The read operation timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
self.run()
File "/usr/lib/python3.11/threading.py", line 982, in run
self._target(*self._args, **self._kwargs)
File "/home/seluser/venv/lib/python3.11/site-packages/agency_swarm/agency/agency.py", line 147, in get_completion_stream
next(gen)
File "/home/seluser/venv/lib/python3.11/site-packages/agency_swarm/threads/thread.py", line 109, in get_completion
self._submit_tool_outputs(tool_outputs, event_handler)
File "/home/seluser/venv/lib/python3.11/site-packages/agency_swarm/threads/thread.py", line 227, in _submit_tool_outputs
stream.until_done()
File "/home/seluser/venv/lib/python3.11/site-packages/openai/lib/streaming/_assistants.py", line 102, in until_done
consume_sync_iterator(self)
File "/home/seluser/venv/lib/python3.11/site-packages/openai/_utils/_streams.py", line 6, in consume_sync_iterator
for _ in iterator:
File "/home/seluser/venv/lib/python3.11/site-packages/openai/lib/streaming/_assistants.py", line 69, in iter
for item in self._iterator:
File "/home/seluser/venv/lib/python3.11/site-packages/openai/lib/streaming/_assistants.py", line 404, in stream
for event in stream:
File "/home/seluser/venv/lib/python3.11/site-packages/openai/_streaming.py", line 46, in iter
for item in self._iterator:
File "/home/seluser/venv/lib/python3.11/site-packages/openai/_streaming.py", line 61, in stream
for sse in iterator:
File "/home/seluser/venv/lib/python3.11/site-packages/openai/_streaming.py", line 53, in _iter_events
yield from self._decoder.iter(self.response.iter_lines())
File "/home/seluser/venv/lib/python3.11/site-packages/openai/_streaming.py", line 287, in iter
for line in iterator:
File "/home/seluser/venv/lib/python3.11/site-packages/httpx/_models.py", line 861, in iter_lines
for text in self.iter_text():
File "/home/seluser/venv/lib/python3.11/site-packages/httpx/_models.py", line 848, in iter_text
for byte_content in self.iter_bytes():
File "/home/seluser/venv/lib/python3.11/site-packages/httpx/_models.py", line 829, in iter_bytes
for raw_bytes in self.iter_raw():
File "/home/seluser/venv/lib/python3.11/site-packages/httpx/_models.py", line 883, in iter_raw
for raw_stream_bytes in self.stream:
File "/home/seluser/venv/lib/python3.11/site-packages/httpx/_client.py", line 126, in iter
for chunk in self._stream:
File "/home/seluser/venv/lib/python3.11/site-packages/httpx/_transports/default.py", line 112, in iter
with map_httpcore_exceptions():
File "/usr/lib/python3.11/contextlib.py", line 158, in exit
self.gen.throw(typ, value, traceback)
File "/home/seluser/venv/lib/python3.11/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ReadTimeout: The read operation timed out

Ubuntu 22.04 - Error when running "agency-swarm import-agent --name Devid" from YoutubeVideo Introducing Devid, AI Software Engineer You Can Actually Use

I followed the steps as close as i could to your youtube video. I get an error when I run

agency-swarm import-agent --name Devid

seluser@e20902d50891:/app$ agency-swarm import-agent --name Devid
Traceback (most recent call last):
File "/home/seluser/venv/bin/agency-swarm", line 8, in
sys.exit(main())
File "/home/seluser/venv/lib/python3.10/site-packages/agency_swarm/cli.py", line 54, in main
import_agent(args.name, args.destination)
File "/home/seluser/venv/lib/python3.10/site-packages/agency_swarm/util/cli/import_agent.py", line 16, in import_agent
os.makedirs(agent_destination, exist_ok=True)
File "/usr/lib/python3.10/os.py", line 225, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: './Devid'

For kicks I tried running the docker image as sudo since it is running in a VM and it still gives this error

Failed to install agency-swarm and fastapi because these package versions have conflicting dependencies

In a new python env, installing the following packages:

2024-05-18 08:43:59.326 [info] ERROR: Cannot install agency-swarm and fastapi because these package versions have conflicting dependencies.
2024-05-18 08:43:59.326 [info] 
The conflict is caused by:
    instructor 0.6.7 depends on typer<0.10.0 and >=0.9.0
    fastapi-cli 0.0.3 depends on typer>=0.12.3
    instructor 0.6.7 depends on typer<0.10.0 and >=0.9.0
    fastapi-cli 0.0.2 depends on typer>=0.12.3

I receive this during dependency install with pip. Possibly my inexperience, but any pointers would be greatly appreciated.

"The requested model 'gpt-4-turbo-preview' does not exist."

Hi Everyone,
im kind of new with all of this, after following the instructions for install, i get the following error when trying to run agency.py for WebDevCrafters

from None
openai.BadRequestError: Error code: 400 - {'error': {'message': "The requested model 'gpt-4-turbo-preview' does not exist.", 'type': 'invalid_request_error', 'param': 'model', 'code': 'model_not_found'}}

can someone tell me how to change the model or so?
thanks!

Files do not exist!

I followed this guide https://www.youtube.com/watch?v=BEpDRj9H3zE to the T, but when I try to run the agency.py for the CodeSolutionAgency inside Docker I get this error:

2024-04-19 15:57:08 seluser@6678e9414e7c:/app/CodeSolutionAgency$ python agency.py
Files folder '/app/CodeSolutionAgency/PlannerAgent/files' is not a directory. Skipping...
2024-04-19 15:57:09 Schemas folder path is not a directory. Skipping... /app/CodeSolutionAgency/PlannerAgent/schemas
2024-04-19 15:57:09 Files folder '/app/CodeSolutionAgency/Devid/files' is not a directory. Skipping...
2024-04-19 15:57:09 Schemas folder path is not a directory. Skipping... /app/CodeSolutionAgency/Devid/schemas
2024-04-19 15:57:09 Files folder '/app/CodeSolutionAgency/BrowsingAgent/files' is not a directory. Skipping...
2024-04-19 15:57:09 Schemas folder path is not a directory. Skipping... /app/CodeSolutionAgency/BrowsingAgent/schemas

Those file are not presented even here in the repo, why?

This site can’t be reached

in VSC terminal everything looks good:
"
seluser@187fbed20efe:/app/CodeSolutionAgency$ python agency.py
Files folder '/app/CodeSolutionAgency/PlannerAgent/files' is not a directory. Skipping...
Schemas folder path is not a directory. Skipping... /app/CodeSolutionAgency/PlannerAgent/schemas
Files folder '/app/CodeSolutionAgency/Devid/files' is not a directory. Skipping...
Schemas folder path is not a directory. Skipping... /app/CodeSolutionAgency/Devid/schemas
Files folder '/app/CodeSolutionAgency/BrowsingAgent/files' is not a directory. Skipping...
Schemas folder path is not a directory. Skipping... /app/CodeSolutionAgency/BrowsingAgent/schemas
Running on local URL: http://0.0.0.0:7860

To create a public link, set share=True in launch().", but the page cannot be accessed in the browser.
Screenshot 2024-04-21 211732
Screenshot 2024-04-21 211740

Linux support

Does it work on linux?, neither in the video or documentation there is a single word about linux. You make an open source tool and only talk about privative operating systems.

CEO Doesn't move forward with the project after wireframes, just tells me to have a good day

I'm using the WebDevCrafters agency and got a problem with the CEO not delegating properly.
At one point the Designer gives an overview of what they are going to create wireframes for.
The CEO then states:

"The designer is now working on creating detailed wireframes for the UTM tracking code management system. These wireframes will focus on ensuring a user-friendly interface for [project details].                                                                                                                                                                                                              

Next Steps:                                                                                                                                                                                                                                                    

 1 Wireframe Review: Once the wireframes are complete, they will be presented for your review. This stage is crucial for final feedback and tweaks before transitioning to the development phase.                                                              
 2 Development Handoff: After approval of the wireframes, I will facilitate the handoff to our web developer, ensuring they have all the information needed to start coding the system.                                                                        

I'll keep you updated as soon as the wireframes are ready for review.

After this, it passes it back to the User and then nothing happens. If I try to prompt it to delegate it says that it will, but then passes it back to the User again.

Is there something I'm missing here?

Starting Docker on windows from CLI ISSUE with -v ./:/app

The issue is the way you've formatted the path (./) isn't recognized correctly by Docker on Windows.

To resolve this issue, you can specify the volume path using the absolute path of the directory you want to mount.

When using PowerShell or CMD in Windows, you can prepend the current directory with ${PWD} which stands for "Print Working Directory". This will translate to the full path of the current directory.

Here’s how you can adjust your Docker command:
docker run -it -v ${PWD}:/app --rm -p 7860:7860 -e OPENAI_API_KEY=<YOUR_API_KEY> vrsen/agency-swarm

Building Docker image on windows system using shell terminal on vscode

=> ERROR [2/9] RUN sudo apt-get update && sudo apt-get install -y curl software-properties-common && curl -sL htt 23.9s

[2/9] RUN sudo apt-get update && sudo apt-get install -y curl software-properties-common && curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - && sudo apt-get install -y nodejs && sudo rm -rf /var/lib/apt/lists/*:
2.433 Get:1 https://packages.adoptium.net/artifactory/deb jammy InRelease [7,504 B]
2.586 Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
2.931 Err:3 http://archive.ubuntu.com/ubuntu jammy InRelease
2.931 403 Forbidden [IP: 91.189.91.81 80]
3.791 Get:4 https://packages.adoptium.net/artifactory/deb jammy/main amd64 Packages [8,167 B]
4.717 Get:5 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
8.913 Ign:6 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
10.78 Ign:7 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
13.05 Ign:8 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages
14.88 Ign:9 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages
17.15 Get:6 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [1,739 kB]
19.66 Get:7 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [2,019 kB]
20.31 Get:8 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1,077 kB]
23.53 Get:9 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1,369 kB]
23.72 Reading package lists...
23.87 E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy/InRelease 403 Forbidden [IP: 91.189.91.81 80]
23.87 E: The repository 'http://archive.ubuntu.com/ubuntu jammy InRelease' is not signed.


Dockerfile.browsing.amd64:5

4 | # Install Node.js and npm
5 | >>> RUN sudo apt-get update &&
6 | >>> sudo apt-get install -y curl software-properties-common &&
7 | >>> curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - &&
8 | >>> sudo apt-get install -y nodejs &&
9 | >>> sudo rm -rf /var/lib/apt/lists/*
10 |

ERROR: failed to solve: process "/bin/sh -c sudo apt-get update && sudo apt-get install -y curl software-properties-common && curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - && sudo apt-get install -y nodejs && sudo rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100

View build details: docker-desktop://dashboard/build/default/default/mb4vgjis252oxuyfgahd57h3k

installation guide

I'm sorry but do we have to close the agency lab repo to the original https://github.com/VRSEN/agency-swarm? because when I just clone it and run I get this: (base) saua@192 agency-swarm-lab % python agency.py
python: can't open file '/Users/saua/Documents/AI/SELF OPERATING/agency-swarm-lab/agency.py': [Errno 2] No such file or directory
(base) saua@192 agency-swarm-lab %

I only have WebDevCrafters. so if I run the agency.py form there I get this:
(base) saua@192 agency-swarm-lab % cd WebDevCrafters
(base) saua@192 WebDevCrafters % python agency.py
Traceback (most recent call last):
File "/Users/saua/Documents/AI/SELF OPERATING/agency-swarm-lab/WebDevCrafters/agency.py", line 1, in
from agency_swarm import Agency, set_openai_key
ModuleNotFoundError: No module named 'agency_swarm'
(base) saua@192 WebDevCrafters %

"Choose an Agency: Decide which agency you would like to run or explore. Each agency is contained in its own folder within the repository.

Install Agency-Specific Requirements: Navigate into the directory of the agency you've chosen. Each agency may have its own requirements.txt file, which specifies additional dependencies necessary for that particular agency."

When install the requirements there're no agency to run or explore..

Error parsing tool.

❯ python agency.py
Error parsing tool. Skipping... AnalyzeContent.py

How do we correctly pares the tool?

`from agency_swarm.tools import BaseTool
from pydantic import Field
from agency_swarm.agents.browsing.tools.util import get_web_driver, get_b64_screenshot
from agency_swarm.util import get_openai_client

class AnalyzeContent(BaseTool):
"""
This tool analyzes the current website content developed by the Web Developer agent.
By asking questions you can ensure that the current website matches your requirements.
You can only use this tool after the web developer agent has developed the website.
"""
question: str = Field(
..., description="Question to ask about the contents of the current webpage."
)

def run(self):
    wd = get_web_driver()

    # make sure to run the web dev server first
    wd.get("http://localhost:3000")

    client = get_openai_client()

    screenshot = get_b64_screenshot(wd)

    # save screenshot locally
    with open("screenshot.png", "wb") as fh:
        fh.write(base64.b64decode(screenshot))

    messages = [
        {
            "role": "system",
            "content": "Your primary task is to accurately extract and provide information in response to user queries based on webpage screenshots. ",
        },
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": f"data:image/jpeg;base64,{screenshot}",
                },
                {
                    "type": "text",
                    "text": f"{self.question}",
                }
            ]
        }

    ]

    response = client.chat.completions.create(
        model="gpt-4-vision-preview",
        messages=messages,
        max_tokens=1024,
    )

    message = response.choices[0].message
    message_text = message.content

    return message_text

`

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.