Giter Club home page Giter Club logo

fastled_neomatrix_smartmatrix_ledmatrix_gfx_demos's People

Contributors

marcmerlin avatar netmindz avatar paintyourdragon avatar tdicola 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fastled_neomatrix_smartmatrix_ledmatrix_gfx_demos's Issues

Failure to compile sample

Having issues trying to compile your example - clash between esp tools 1.0.5 and your code?

In file included from /home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/tuple:39:0,
from /home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/functional:55,
from /home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/memory:79,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FS/src/FS.h:24,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FFat/src/FFat.h:18,
from sketch/neomatrix_config.h:179,
from /home/will/Arduino/3rdParty/FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos/FastLED/Vortex/Vortex.ino:1:
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/array:115:26: error: macro "swap" requires 2 arguments, but only 1 given
swap(array& __other)
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/array:274:56: error: macro "swap" passed 4 arguments, but takes just 2
swap(array<_Tp, _Nm>& __one, array<_Tp, _Nm>& __two)
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/array:275:39: error: macro "swap" requires 2 arguments, but only 1 given
noexcept(noexcept(__one.swap(__two)))
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/array:276:23: error: macro "swap" requires 2 arguments, but only 1 given
{ __one.swap(__two); }
^
In file included from /home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/functional:55:0,
from /home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/memory:79,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FS/src/FS.h:24,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FFat/src/FFat.h:18,
from sketch/neomatrix_config.h:179,
from /home/will/Arduino/3rdParty/FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos/FastLED/Vortex/Vortex.ino:1:
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/tuple:580:23: error: macro "swap" requires 2 arguments, but only 1 given
swap(tuple& __in)
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/tuple:590:23: error: macro "swap" requires 2 arguments, but only 1 given
void swap(tuple&) noexcept { /* no-op */ }
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/tuple:740:23: error: macro "swap" requires 2 arguments, but only 1 given
swap(tuple& __in)
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/tuple:1133:35: error: macro "swap" requires 2 arguments, but only 1 given
noexcept(noexcept(__x.swap(__y)))
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/tuple:1134:19: error: macro "swap" requires 2 arguments, but only 1 given
{ __x.swap(__y); }
^
In file included from /home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/memory:79:0,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FS/src/FS.h:24,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FFat/src/FFat.h:18,
from sketch/neomatrix_config.h:179,
from /home/will/Arduino/3rdParty/FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos/FastLED/Vortex/Vortex.ino:1:
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/functional:2035:16: error: macro "swap" requires 2 arguments, but only 1 given
__x.swap(*this);
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/functional:2075:26: error: macro "swap" requires 2 arguments, but only 1 given
function(__x).swap(*this);
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/functional:2093:37: error: macro "swap" requires 2 arguments, but only 1 given
function(std::move(__x)).swap(*this);
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/functional:2136:52: error: macro "swap" requires 2 arguments, but only 1 given
function(std::forward<_Functor>(__f)).swap(*this);
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/functional:2145:28: error: macro "swap" requires 2 arguments, but only 1 given
function(__f).swap(*this);
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/functional:2158:30: error: macro "swap" requires 2 arguments, but only 1 given
void swap(function& __x)
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/functional:2374:19: error: macro "swap" requires 2 arguments, but only 1 given
{ __x.swap(__y); }
^
In file included from /home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/memory:81:0,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FS/src/FS.h:24,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FFat/src/FFat.h:18,
from sketch/neomatrix_config.h:179,
from /home/will/Arduino/3rdParty/FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos/FastLED/Vortex/Vortex.ino:1:
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/unique_ptr.h:349:27: error: macro "swap" requires 2 arguments, but only 1 given
swap(unique_ptr& __u) noexcept
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/unique_ptr.h:591:27: error: macro "swap" requires 2 arguments, but only 1 given
swap(unique_ptr& __u) noexcept
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/unique_ptr.h:618:28: error: macro "swap" passed 4 arguments, but takes just 2
unique_ptr<_Tp, _Dp>& __y) noexcept
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/unique_ptr.h:619:19: error: macro "swap" requires 2 arguments, but only 1 given
{ __x.swap(__y); }
^
In file included from /home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr.h:52:0,
from /home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/memory:82,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FS/src/FS.h:24,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FFat/src/FFat.h:18,
from sketch/neomatrix_config.h:179,
from /home/will/Arduino/3rdParty/FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos/FastLED/Vortex/Vortex.ino:1:
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:992:43: error: macro "swap" requires 2 arguments, but only 1 given
__shared_ptr(std::move(__r)).swap(*this);
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1000:41: error: macro "swap" requires 2 arguments, but only 1 given
__shared_ptr(std::move(__r)).swap(*this);
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1008:43: error: macro "swap" requires 2 arguments, but only 1 given
__shared_ptr(std::move(__r)).swap(*this);
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1016:43: error: macro "swap" requires 2 arguments, but only 1 given
__shared_ptr(std::move(__r)).swap(*this);
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1022:34: error: macro "swap" requires 2 arguments, but only 1 given
{ __shared_ptr().swap(*this); }
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1030:32: error: macro "swap" requires 2 arguments, but only 1 given
__shared_ptr(__p).swap(*this);
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1036:37: error: macro "swap" requires 2 arguments, but only 1 given
{ __shared_ptr(__p, __d).swap(*this); }
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1041:60: error: macro "swap" requires 2 arguments, but only 1 given
{ __shared_ptr(__p, __d, std::move(__a)).swap(*this); }
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1299:66: error: macro "swap" passed 4 arguments, but takes just 2
swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b) noexcept
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1300:19: error: macro "swap" requires 2 arguments, but only 1 given
{ __a.swap(__b); }
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1454:32: error: macro "swap" requires 2 arguments, but only 1 given
{ __weak_ptr().swap(*this); }
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1457:27: error: macro "swap" requires 2 arguments, but only 1 given
swap(__weak_ptr& __s) noexcept
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1484:62: error: macro "swap" passed 4 arguments, but takes just 2
swap(__weak_ptr<_Tp, _Lp>& __a, __weak_ptr<_Tp, _Lp>& __b) noexcept
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_base.h:1485:19: error: macro "swap" requires 2 arguments, but only 1 given
{ __a.swap(__b); }
^
In file included from /home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/memory:82:0,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FS/src/FS.h:24,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FFat/src/FFat.h:18,
from sketch/neomatrix_config.h:179,
from /home/will/Arduino/3rdParty/FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos/FastLED/Vortex/Vortex.ino:1:
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr.h:441:19: error: macro "swap" requires 2 arguments, but only 1 given
{ __a.swap(__b); }
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr.h:534:19: error: macro "swap" requires 2 arguments, but only 1 given
{ __a.swap(__b); }
^
In file included from /home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/memory:83:0,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FS/src/FS.h:24,
from /home/will/.arduino15/packages/esp32/hardware/esp32/1.0.5/libraries/FFat/src/FFat.h:18,
from sketch/neomatrix_config.h:179,
from /home/will/Arduino/3rdParty/FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos/FastLED/Vortex/Vortex.ino:1:
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_atomic.h:138:20: error: macro "swap" requires 2 arguments, but only 1 given
__p->swap(__r); // use swap so that **__p not destroyed while lock held
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_atomic.h:153:20: error: macro "swap" requires 2 arguments, but only 1 given
__p->swap(__r); // use swap so that **__p not destroyed while lock held
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_atomic.h:175:20: error: macro "swap" requires 2 arguments, but only 1 given
__p->swap(__r);
^
/home/will/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/xtensa-esp32-elf/include/c++/5.2.0/bits/shared_ptr_atomic.h:194:20: error: macro "swap" requires 2 arguments, but only 1 given
__p->swap(__r);
^
exit status 1
Error compiling for board LOLIN D32.

Documentation improvements

Hej

I'm following your work since quite some time now. I'm very impressed about the progress and started (at least tried to start) to implement your code into some simpler test project.
Unfortunately it's very difficult to find the right way to use your lib's.

Originally I've used FastLED together with LEDMatrix and LEDText from AaronLiddiment.
But I see a lot of opportunity's by using Neomatrix together with LEDMatrix. Obviously the bigger font library of the Adafruit GFX library.

However, from my perspective there is no clear path that shows how to use all these API's together. It seems everything you offer is naturally grown. And this is absolutly natural in my eyes. But I would be really happy to see some simpler examples and documentation in order to understand fully how your combination of all these library's needs to be implemented in order to secure that they work as they are intended to work.
Right now everything is quite confusing. (Even though it looks very promising)

Changing the Matrix size from 64 x 64 to 128 x 128

Hi Marc,

I wanted to ask you how do I have to modify the neomatrix_config.h file in order to change the matrix size from 64 x 64 to 128 x 128 or other dimensions. I'm using Teensy 3.5 and Smartmatrix shield.

Thank you for all your efforts and this great project.

cheers

Compiling error for Teensy 4.0

Hi,

first of all thank you for the great work.

So, I was trying to compile the Aurora example using a Teensy 4.0 and Smartmatrix Shield V5 but I get an error message in line 400:

Arduino: 1.8.16 (Mac OS X), TD: 1.55, Board: "Teensy 4.1, Serial, 600 MHz, Faster, US English"

In file included from /Users/thecrow/Documents/Arduino/FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos-master/GFX/Aurora/matrix.h:8:0,
from /Users/thecrow/Documents/Arduino/FastLED_NeoMatrix_SmartMatrix_LEDMatrix_GFX_Demos-master/GFX/Aurora/Aurora.ino:1:
neomatrix_config.h:400: error: #elif with no expression
Multiple libraries were found for "FastLED.h"
Used: /Users/thecrow/Documents/Arduino/libraries/FastLED
Not used: /Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries/FastLED
Multiple libraries were found for "SD.h"
Used: /Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries/SD
Not used: /Applications/Teensyduino.app/Contents/Java/libraries/SD
#elif with no expression

I've already defined IMXRT1062 for line 47 but that's the error I get. I din't have this problem with Teensy 3.5 and Smartmatrix Shield V4.

I'm also using Arduino 1.8.16 with Teensyduino 1.55

Any idea what might be the problem?

Thanx in advance.

cheers

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.