Comments (28)
can you try testing with the more direct path to that input file and let me know if it gives the same error?
/Users/tucker/Dev/colour/colour/io/tests/resources/CMS_Test_Pattern.exr
I believe ctl_render tries to read the input file looking for the magic numbers that would idenity it has DPX, TIF and EXR, instead of just relying on the file extension
from ctl.
Same result.
from ctl.
are you sure you are using the most recent code available in the master branch?
I didn't get the error you are seeing when using the CMS_Test_Pattern.exr
file you attached when using the ctl in /unittests/ctlrender/unity.ctl
Here are the steps I used to test after cloning the repo:
docker build --rm -f Dockerfile -t ctl:latest .
docker run -it --rm -v C:\\temp:/tmp/ ctl:latest
ctlrender -ctl ./unittest/ctlrender/unity.ctl /tmp/CMS_Test_Pattern.exr /tmp/out.exr
out.exr looks identical to the input file CMS_Test_Pattern.exr
from ctl.
from ctl.
Build from scratch worked great.
from ctl.
I think some of the instructions are out-of-date, the CTL repo had not been updated since 2014 so I volunteered to maintain it in May 2022. Since then, we've fixed a lot of bugs and extended support to many more platforms and OpenEXR3, so I think we should do a release soon. The brew CTL distribution may need a new release version number to trigger their repo to use the latest code, I'm not sure.
from ctl.
Sounds good. I'm trying to also become a better contributor to colour-science
and need ctl-render to run some of our examples. Not something I'm particularly familiar with.
Anyway. This seems to be fixed. I'm having an issue with
exception thrown (oops...): CTL parameter 'aIn' not specified on the command line and does not have a default value.
now, but I assume that's some of your changes / bug fixes and we need to update on our side.
Tagging @KelSolaar for vis.
from ctl.
OK good to hear. My guess is that you are getting that aIn
error because the CTL file you are using expects RGBA input but your input file is only RGB. To overcome this without changing the CTL file to only input RGB, you can provide this additional argument when running ctlrender
-global_param1 aIn 1.0
which will set the input A value to 1.0
Let me know if that fixes the exception.
from ctl.
Thanks. Perfect workaround for now.
Next up to debug is our fileIO. Did the output parameters / usage change at all?
from ctl.
i don't believe the output parameters or usage has changed. Are you getting other errors now?
from ctl.
Another work around is to write your CTL code to handle both RGB and RGBA input files and set a default value for aIn
within the CTL code, like this:
void main
(output varying half rOut,
output varying half gOut,
output varying half bOut,
output varying half aOut,
input varying half rIn,
input varying half gIn,
input varying half bIn,
input varying half aIn = 1.0)
{
rOut=rIn;
gOut=gIn;
bOut=bIn;
aOut=aIn;
}
from ctl.
Thanks for your help @michaeldsmith. Probably best that we re-write out CTL template to have defaults there.
I am solved on my other issues, but we would like to have a release soon if you think you've stabilized CTL. That way we can test against a release version.
Cheers,
from ctl.
ctlrender stopped working for me and started showing me the same error about Unable to read tiff file: Not a TIFF or MDI file, bad magic number 12150 (0x2f76)unable to read file
...*.exr (unknown format).
I have tried reinstalling from source using cmake and get an error on the make when linking ctlrender. Any ideas on how to fix?
(Up to here, all builds fine, except for a few warnings of deprecated syntax)
...
[ 68%] Building CXX object ctlrender/CMakeFiles/ctlrender.dir/format.cc.o
[ 69%] Building CXX object ctlrender/CMakeFiles/ctlrender.dir/compression.cc.o
[ 70%] Linking CXX executable ctlrender
ld: Undefined symbols:
half::_eLut, referenced from:
half::half(float) in exr_file.cc.o
half::convert(int), referenced from:
half::half(float) in exr_file.cc.o
half::_toFloat, referenced from:
half::operator float() const in libIlmCtlSimd.a[14](CtlSimdStdLibLookupTable.cpp.o)
Imf_3_2::Header::Header(int, int, float, Imath_2_5::Vec2<float> const&, float, Imf_3_2::LineOrder, Imf_3_2::Compression), referenced from:
exr_write(char const*, float, ctl::dpx::fb<float> const&, format_t*, Compression*) in exr_file.cc.o
Imath_2_5::SingMatrixExc::SingMatrixExc(char const*), referenced from:
Imath_2_5::Matrix33<float>::inverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix33<float>::inverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix44<float>::inverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix44<float>::gjInverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix44<float>::gjInverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::SingMatrixExc::~SingMatrixExc(), referenced from:
Imath_2_5::Matrix33<float>::inverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix33<float>::inverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix44<float>::inverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix44<float>::gjInverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix44<float>::gjInverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
typeinfo for Imath_2_5::SingMatrixExc, referenced from:
Imath_2_5::Matrix33<float>::inverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix33<float>::inverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix44<float>::inverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix44<float>::gjInverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
Imath_2_5::Matrix44<float>::gjInverse(bool) const in libIlmCtlSimd.a[15](CtlSimdStdLibMath.cpp.o)
operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, half), referenced from:
void Ctl::(anonymous namespace)::printFunc<half>(Ctl::SimdBoolMask const&, Ctl::SimdXContext&) in libIlmCtlSimd.a[16](CtlSimdStdLibPrint.cpp.o)
void Ctl::(anonymous namespace)::printFunc<half>(Ctl::SimdBoolMask const&, Ctl::SimdXContext&) in libIlmCtlSimd.a[16](CtlSimdStdLibPrint.cpp.o)
Ctl::SimdPushLiteralInst<half>::print(int) const in libIlmCtlSimd.a[19](CtlSimdSyntaxTree.cpp.o)
Ctl::HalfLiteralNode::print(int) const in libIlmCtl.a[15](CtlSyntaxTree.cpp.o)
Ctl::HalfLiteralNode::printLiteral() const in libIlmCtl.a[15](CtlSyntaxTree.cpp.o)
Ctl::HalfType::evaluate(Ctl::LContext&, Ctl::RcPtr<Ctl::ExprNode> const&) const in libIlmCtl.a[17](CtlType.cpp.o)
Ctl::HalfType::evaluate(Ctl::LContext&, Ctl::RcPtr<Ctl::ExprNode> const&) const in libIlmCtl.a[17](CtlType.cpp.o)
...
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [ctlrender/ctlrender] Error 1
make[1]: *** [ctlrender/CMakeFiles/ctlrender.dir/all] Error 2
make: *** [all] Error 2
from ctl.
@scottdyer it looks like your build may be trying to use version 3.2 of OpenEXR (Imf_3_2) while trying to use version 2.5 of IMath (Imath_2_5).
version 2.5 of Imath was part of ilmbase for years, but Imath was spun out of ilmbase when OpenEXR went to version 3, there is now a separate Imath 3 library [1] dependency in OpenEXR 3
My guess is that you may have both Imath 3 and Imath 2.5 (part of ilmbase) installed on your system somehow and CTL is trying to use Imath 2.5 with OpenEXR 3.2
Can you try uninstalling ilmbase on your system and re-running cmake?
If you still have issues, can you provide the cmake output text? It should look something like this:
cmake ..
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_BUILD_TYPE : ""
-- To use AddressSanitizer, use "cmake .. -DCMAKE_BUILD_TYPE=asan"
-- Found OpenEXR 3.2.1
-- Found TIFF: /usr/lib/x86_64-linux-gnu/libtiff.so (found version "4.3.0")
-- found TIFF, TIFF_LIBRARIES : /usr/lib/x86_64-linux-gnu/libtiff.so
CMake Warning at ctlrender/CMakeLists.txt:53 (find_package):
By not providing "FindAcesContainer.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"AcesContainer", but CMake did not find one.
Could not find a package configuration file provided by "AcesContainer"
with any of the following names:
AcesContainerConfig.cmake
acescontainer-config.cmake
Add the installation prefix of "AcesContainer" to CMAKE_PREFIX_PATH or set
"AcesContainer_DIR" to a directory containing one of the above files. If
"AcesContainer" provides a separate development package or SDK, be sure it
has been installed.
ctlrender test executable: /usr/src/CTL/build/ctlrender/ctlrender
-- LibTIFF found, OpenEXR found, including TIF and EXR files in ctlrender unit tests
ctlrender test output folder will be created at: /usr/src/CTL/build/unittest/ctlrender/output
exrdpx build director: /usr/src/CTL/build/OpenEXR_CTL/exrdpx
exrdpx test executable: /usr/src/CTL/build/OpenEXR_CTL/exrdpx/exrdpx
exrdpx test output folder will be created at: /usr/src/CTL/build/unittest/exrdpx/output
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/src/CTL/build
[1] https://github.com/AcademySoftwareFoundation/Imath
from ctl.
Well yes, that appeared to be it. I was overlooking that mismatch in the library versions - I thought I had fully reinstalled openexr but part of the old stuff was still lingering. Cleaned that out then reinstalled openexr and the ctl installed beautifully with cmake. Or at least completed without errors. Thanks.
However, now when I run ctlrender, I get this error:
dyld[93627]: Symbol not found: __Z13iex_debugTrapv
Referenced from: <8CF3302C-64B5-3719-9EFE-27CC2F4FABE3> /usr/local/bin/ctlrender
Expected in: <no uuid> unknown
zsh: abort ctlrender
For reference, here is the cmake output:
(base) scott@Scotts-MacBook-Pro build % cmake ..
-- The C compiler identification is AppleClang 15.0.0.15000040
-- The CXX compiler identification is AppleClang 15.0.0.15000040
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_BUILD_TYPE : ""
-- To use AddressSanitizer, use "cmake .. -DCMAKE_BUILD_TYPE=asan"
-- Found OpenEXR 3.1.11
-- Found TIFF: /usr/local/lib/libtiff.dylib (found version "4.6.0")
-- found TIFF, TIFF_LIBRARIES : /usr/local/lib/libtiff.dylib
ctlrender test executable: /Users/scott/src/ctl/build/ctlrender/ctlrender
-- LibTIFF found, OpenEXR found, including TIF and EXR files in ctlrender unit tests
ctlrender test output folder will be created at: /Users/scott/src/ctl/build/unittest/ctlrender/output
exrdpx build director: /Users/scott/src/ctl/build/OpenEXR_CTL/exrdpx
exrdpx test executable: /Users/scott/src/ctl/build/OpenEXR_CTL/exrdpx/exrdpx
exrdpx test output folder will be created at: /Users/scott/src/ctl/build/unittest/exrdpx/output
exr_ctl_exr build director: /Users/scott/src/ctl/build/OpenEXR_CTL/exr_ctl_exr
exr_ctl_exr test executable: /Users/scott/src/ctl/build/OpenEXR_CTL/exr_ctl_exr/exr_ctl_exr
exr_ctl_exr test output folder will be created at: /Users/scott/src/ctl/build/unittest/exr_ctl_exr/output
-- Configuring done (2.1s)
-- Generating done (0.2s)
-- Build files have been written to: /Users/scott/src/ctl/build
from ctl.
I've not seen that debugTrapv error before. Are you sure that your shell is not doing something else like running trap?
You could try compiling CTL for Release mode and see if that fixes this issue, by running cmake like this:
cmake .. -D CMAKE_BUILD_TYPE=Release
If that doesn't work, you could try following the steps I put together in the Mac release github workflow here:
https://github.com/ampas/CTL/blob/master/.github/workflows/mac_release.yml
Those steps compile and test CTL from source on Mac using either OpenEXR 2 or OpenEXR 3
If you need to use ctlrender soon and can't get it working natively on mac, you could also try using one of the dockers that I've included in the repo.
from ctl.
@scottdyer One other thing I thought of to share with you, I have not tested the recent CTL using the AcesContainer dependency. Trying out AcesContainer with CTL is on my todo list. Its possible that AcesContainer could be causing an issue for you. The Cmake output text you included above did not mention not finding AcesContainer, so I imagine you have AcesContainer installed on your machine. Can you confirm that? When I run cmake on systems without AcesContainer, I see cmake output message indicating AcesContainer was not found, like this:
#18 0.658 CMake Warning at ctlrender/CMakeLists.txt:53 (find_package):
#18 0.658 By not providing "FindAcesContainer.cmake" in CMAKE_MODULE_PATH this
#18 0.658 project has asked CMake to find a package configuration file provided by
#18 0.658 "AcesContainer", but CMake did not find one.
#18 0.658
#18 0.658 Could not find a package configuration file provided by "AcesContainer"
#18 0.658 with any of the following names:
#18 0.658
#18 0.658 AcesContainerConfig.cmake
#18 0.658 acescontainer-config.cmake
#18 0.658
#18 0.658 Add the installation prefix of "AcesContainer" to CMAKE_PREFIX_PATH or set
#18 0.658 "AcesContainer_DIR" to a directory containing one of the above files. If
#18 0.658 "AcesContainer" provides a separate development package or SDK, be sure it
#18 0.658 has been installed.
from ctl.
Thanks, I do have aces_container installed and all of ctlrender used to work just fine on my machine. I don't know at what point it stopped working but it was fairly recently so maybe macOS changed something or whatever since OpenEXRs seems to be acting weird recently in macOS in terms of thumbnail previews, etc.
Also, I will note that the docker did install fine but for practical reasons I still want to get ctlrender installed natively on my system. I'll keep trying things to make sure I don't have any lingering old versions being linked or something like that. I just don't know what the dyld[93627]: Symbol not found: __Z13iex_debugTrapv
error I'm getting means so it's particularly hard to know what to do next besides just clean everything and try again from scratch (which I think I've done several times but I've got to be missing something...).
from ctl.
it looks like dyld is the mac dynamic library loader [1]. I will look into compiling CTL in static mode which may avoid the use of dyld.
from ctl.
@scottdyer I found what seems to be a related issue posted in the OpenEXR repo about iex_debugTrap
, it seems to match your error message __Z13iex_debugTrapv
very closely
AcademySoftwareFoundation/openexr#188
It looks like @meshula has posted a work around but I'm not sure it is relevant to the latest OpenEXR releases.
You could try cleaning out your OpenEXR install on your machine and recompiling OpenEXR from source.
from ctl.
That workaround would work, although I haven't seen a need for it in many years.
from ctl.
@scottdyer I've been able to replicate a iex_debugTrap
issue that may be related to your issue, if I build openexr 2.5 with cmake argument -DBUILD_SHARED_LIBS=ON
on a Mac
cd ..
git clone https://github.com/AcademySoftwareFoundation/openexr.git &&
cd openexr &&
git checkout RB-2.5 &&
mkdir build &&
cd build &&
cmake -DBUILD_SHARED_LIBS=ON .. &&
make &&
make install
cmake .. -DBUILD_SHARED_LIBS=ON
make
then I run cmake on CTL with the same cmake argument -DBUILD_SHARED_LIBS=ON
, and then run make, I get the compile error, below. Although, I think your error was a run-time error not a compile error.
[ 21%] Building CXX object lib/IlmCtlMath/CMakeFiles/IlmCtlMath.dir/CtlColorSpace.cpp.o
[ 22%] Building CXX object lib/IlmCtlMath/CMakeFiles/IlmCtlMath.dir/CtlLookupTable.cpp.o
[ 23%] Building CXX object lib/IlmCtlMath/CMakeFiles/IlmCtlMath.dir/CtlRbfInterpolator.cpp.o
[ 24%] Linking CXX shared library libIlmCtlMath.dylib
Undefined symbols for architecture x86_64:
"iex_debugTrap()", referenced from:
double Ctl::CG<double, Ctl::LSSOperator<double, Ctl::CRSOperator<double> >, Ctl::NullLinearOperator>::operator()<std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*> >(std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>) const in CtlRbfInterpolator.cpp.o
"Iex_2_5::ArgExc::ArgExc(std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)", referenced from:
double Ctl::CG<double, Ctl::LSSOperator<double, Ctl::CRSOperator<double> >, Ctl::NullLinearOperator>::operator()<std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*> >(std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>) const in CtlRbfInterpolator.cpp.o
"Iex_2_5::ArgExc::~ArgExc()", referenced from:
double Ctl::CG<double, Ctl::LSSOperator<double, Ctl::CRSOperator<double> >, Ctl::NullLinearOperator>::operator()<std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*> >(std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>) const in CtlRbfInterpolator.cpp.o
"typeinfo for Iex_2_5::ArgExc", referenced from:
double Ctl::CG<double, Ctl::LSSOperator<double, Ctl::CRSOperator<double> >, Ctl::NullLinearOperator>::operator()<std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*> >(std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>, std::__1::__wrap_iter<double*>) const in CtlRbfInterpolator.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lib/IlmCtlMath/libIlmCtlMath.1.5.2.dylib] Error 1
make[1]: *** [lib/IlmCtlMath/CMakeFiles/IlmCtlMath.dir/all] Error 2
make: *** [all] Error 2
Error: Process completed with exit code 2.
I suspect your system still has some remnants of OpenEXR 2.5 lingering around, can you try again to clear those old versions out and try using OpenEXR 3.1 instead?
You could try compiling openexr 3.1 as static (using cmake argument -DBUILD_SHARED_LIBS=OFF
) and then building CTL like normal, and then running ctlrender shouldn't try to load openexr shared libraries at run time which I think was causing your issue.
@meshula do you think CTL should implement your work around when CTL uses openexr 2.5 with cmake argument -DBUILD_SHARED_LIBS=ON
? I have tested this with openexr 3.1 and see any issues with using cmake argument -DBUILD_SHARED_LIBS=ON
from ctl.
I suspect your system still has some remnants of OpenEXR 2.5 lingering around, can you try again to clear those old versions out and try using OpenEXR 3.1 instead?
I have tried everything I could to remove all traces of OpenEXR 2.5 (or 3.1). I started by removing everything in the cmake install_manifest
, but then went into /usr/local/include
, src
, and lib
to manually removed anything else left that had an Ilm, Iex, Imath, OpenEXR, or CTL related prefix.
I then did a fresh install starting with Imath, then OpenEXR, then CTL, and still get the following error
dyld[16548]: Symbol not found: __Z13iex_debugTrapv
Referenced from: <6C5220F1-81E8-3767-B303-19318FAFB139> /usr/local/bin/ctlrender
Expected in: <no uuid> unknown
from ctl.
looking here:
Line 17 in 111b104
from ctl.
Related Issues (20)
- Not having a main() function causes a crash on Windows HOT 1
- ctlrender tests not working on Windows HOT 3
- CTL cmake does not find required dependencies when using apt-get install libilmbase-dev libopenexr-dev HOT 1
- EXR output resolutions are incorrect
- ctl_render dpx_read() should give error message when trying to open invalid filename
- install locations of a few files could be improved HOT 2
- Refactor exr_write() into a single function
- typo in include guard in dpx_raw.hh
- missing unit tests for code in directory /CTL/OpenEXR_CTL/exr_ctl_exr/ HOT 2
- missing unit tests for code in directory /CTL/OpenEXR_CTL/exrdpx/
- typo in \CTL\doc\CtlManual.pdf section 2.4 Arrays, Static Data and Lookup Tables
- typo in dpxToExr.cpp and exrToDpx.cpp
- LeakSanitizer: detected memory leaks when using -float argument with exr_ctl_exr HOT 2
- deprecation warning: 'uint32' is deprecated HOT 1
- 5 compile warnings on MacOs
- "Bad magic number" error on known valid OpenEXR files HOT 7
- New CTL programs HOT 6
- Build fails with strict-aliasing violations HOT 5
- Segmentation fault can result in ctlrender when the number of instructions gets too large
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ctl.