Giter VIP home page Giter VIP logo

libigl.github.io's Introduction

Libigl Website

Please read this page for instructions on how to contribute to the libigl website.

libigl.github.io's People

Contributors

alecjacobson avatar bruegeln avatar danielepanozzo avatar dcoeurjo avatar degravity avatar erooke avatar evilrhinohater avatar fabienpean avatar fkaelberer avatar gmin7 avatar jdumas avatar jiangzhongshi avatar kenshi84 avatar nicom1 avatar pauljurczak avatar pdubroy avatar scott-vsi avatar sooryan avatar teseoch avatar tomlankhorst avatar vfonov avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libigl.github.io's Issues

cmake external_project_add not discussed

AFAIK our new external_project_add method for pulling in dependencies is not discussed on index.md or elsewhere. Since this still may be unusual for many users, it'd be nice to have a short description of what it's doing.

Hello example does not compile

On the index page there is a simple hello world example to make sure you have things set up. Trying to compile it with the supplied command:

g++ -std=c++11 -I/usr/local/include/eigen3 -I./libigl/include/ hello.cpp -o hello

Resulted in this error message on my end.

/usr/bin/ld: /tmp/ccmLIPie.o: in function `_ZNSt6threadC1IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_':
main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_]+0x3f): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccmLIPie.o: in function `_ZNSt6threadC1IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_':
main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_]+0x3f): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccmLIPie.o: in function `_ZNSt6threadC1IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_':
main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEg++ -std=c++11 -I/usr/local/include/eigen3 -I./libigl/include/ hello.cpp -o hellobSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_]+0x3f): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccmLIPie.o: in function `_ZNSt6threadC1IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_':
main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_]+0x3f): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccmLIPie.o: in function `_ZNSt6threadC1IRKZN3igl12parallel_forIlZNS1_12parallel_forIlZNS1_10doubleareaIN5Eigen6MatrixIdLin1ELi3ELi0ELin1ELi3EEENS6_IdLin1ELi1ELi0ELin1ELi1EEEEEvRKNS5_10MatrixBaseIT_EENSA_6ScalarERNS5_15PlainObjectBaseIT0_EEEUliE_EEbSA_RKSG_mEUlmE_ZNS3_IlSJ_EEbSA_SL_mEUllmE0_SM_EEbSA_SL_RKT1_RKT2_mEUlllmE_JRlSX_RmEvEEOSA_DpOT0_':
main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIlZNS1_12parallel_forIlZNS1_10doubleareaIN5Eigen6MatrixIdLin1ELi3ELi0ELin1ELi3EEENS6_IdLin1ELi1ELi0ELin1ELi1EEEEEvRKNS5_10MatrixBaseIT_EENSA_6ScalarERNS5_15PlainObjectBaseIT0_EEEUliE_EEbSA_RKSG_mEUlmE_ZNS3_IlSJ_EEbSA_SL_mEUllmE0_SM_EEbSA_SL_RKT1_RKT2_mEUlllmE_JRlSX_RmEvEEOSA_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIlZNS1_12parallel_forIlZNS1_10doubleareaIN5Eigen6MatrixIdLin1ELi3ELi0ELin1ELi3EEENS6_IdLin1ELi1ELi0ELin1ELi1EEEEEvRKNS5_10MatrixBaseIT_EENSA_6ScalarERNS5_15PlainObjectBaseIT0_EEEUliE_EEbSA_RKSG_mEUlmE_ZNS3_IlSJ_EEbSA_SL_mEUllmE0_SM_EEbSA_SL_RKT1_RKT2_mEUlllmE_JRlSX_RmEvEEOSA_DpOT0_]+0x42): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccmLIPie.o:main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIlZNS1_12parallel_forIlZNS1_10doubleareaIN5Eigen6MatrixIdLin1ELi3ELi0ELin1ELi3EEENS6_IdLin1ELi1ELi0ELin1ELi1EEEEEvRKNS5_10MatrixBaseIT_EENSA_6ScalarERNS5_15PlainObjectBaseIT0_EEEUliE_EEbSA_RKSG_mEUlmE_ZNS3_IlSJ_EEbSA_SL_mEUllmE0_SM_EEbSA_SL_RKT1_RKT2_mEUlllmE_JRlRKlRmEvEEOSA_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIlZNS1_12parallel_forIlZNS1_10doubleareaIN5Eigen6MatrixIdLin1ELi3ELi0ELin1ELi3EEENS6_IdLin1ELi1ELi0ELin1ELi1EEEEEvRKNS5_10MatrixBaseIT_EENSA_6ScalarERNS5_15PlainObjectBaseIT0_EEEUliE_EEbSA_RKSG_mEUlmE_ZNS3_IlSJ_EEbSA_SL_mEUllmE0_SM_EEbSA_SL_RKT1_RKT2_mEUlllmE_JRlRKlRmEvEEOSA_DpOT0_]+0x42): more undefined references to `pthread_create' follow
collect2: error: ld returned 1 exit status

Where the linker can't seem to find pthread_create. Not sure if something is up with my machine or the example but adding the flag -lpthread to the command allows g++ to find the pthread code.

Tutorial reorganization

Chapter 7 is getting a bit out of control. Meanwhile, Chapter 1 is simultaneously an intro chapter and a "viewer features" chapter. Let's use this issue to discuss some reorganization. For reference, here're the current tutorial entries (that we have code for; so this includes ones that have missing documentation):

Tetgen
FastAutomaticSkinningTransformations
SignedDistance
MeshImplicitFunction
SweptVolume
BiharmonicDeformation
Boolean
GaussianCurvature
ExplodedView
SLIM
HarmonicParam
NRosyDesign
ViewerMenu
CSGTree
AsRigidAsPossible
Events
ScreenCapture
BoundedBiharmonicWeights
CurvatureDirections
MarchingCubes
LaplaceEquation
Decimation
LSCMParam
MEX
ShapeUp
Planarization
AmbientOcclusion
Laplacian
WindingNumber
Statistics
Gradient
GeodesicDistance
BiharmonicCoordinates
Kelvinlets
SCAF
MultipleViews
Triangle
DirectDeltaMush
FileIO
IterativeClosestPoint
FastWindingNumber
MIQ
DualQuaternionSkinning
Picking
MultipleMeshes
MarchingTets
DrawMesh
ARAPParam
Colors
EigenDecomposition
Matlab
Slice
QuadraticProgramming
FacetOrientation
Overlays
Sort
FrameField
BlueNoise
LinearEqualityConstraints
Normals
Subdivision
DataSmoothing
HeatGeodesics
ImGuizmo
PolyharmonicDeformation
Serialization

Troubles with figureAltCaption when building the website.

During the hackaton @alecjacobson had some trouble on macOS building the website with mkdocs. the problem mostly comes from the figureAltCaption plugin that I'm using to transform the markdown code for the figures in the tutorial into the html with caption text. There are two related problems here:

  1. Recent versions of Python-Markdown used by mkdocs break figureAltCaption. See tracked issue here.
  2. Even with older versions of the packages it seems that urls in the legends still do not appear correctly. I tried to create a conda environment for the versions of the packages I have on my machine (and that work), but I didn't manage to run it on my Windows machine, so I'll have to see if I an create the conda environment directly from a Windows machine see if it helps.

Anyway, if other mac users can pitch in an tell me if either the virtualenv/Pipenv/conda files that I've put on the root allow them to build the website correctly, or if you have the same issue with url in captions not showing properly, that'd be great. Alternatively, if any of our python power-user like @fwilliams or @jiangzhongshi can pitch in and try to help setting up a proper python environment for building the website, that'd be great.

Workflow for developing website

Since the .html and the .md live in different branches, I'm struggling to find a good workflow for developing the library.

Suppose I've checked out the docs branch and then make a change to tutorial.md, what's the best practice for previewing my change on the .html website?

Update secondary pages

Most of the info on secondary pages of the website is pretty outdated (static library/external dependencies, etc.). I'm just opening this here as a reminder to update those whenever possible.

Pages to check/update:

  • Example Project
  • Static Library
  • External Dependencies
  • Python Bindings
  • Style Guidelines
  • Bug Report
  • Creating a Pull Request
  • Unit Tests
  • File Formats
  • Release History

code blocks are not being rendered correctly

On the website, the code blocks are not being rendered correctly, but when it is deployed locally with mkdocs serve it is. See images below:

from https://libigl.github.io:
Screenshot_02-05-2022-030406

from localhost using mkdocs serve
Screenshot_02-05-2022-030444

From comparing the generated site in the master branch to the locally generated one, it seems that the ```cpp``` codeblocks are indeed not converted correctly. See code snippets below:

from https://libigl.github.io:

libigl.github.io/index.html

Lines 900 to 920 in 9a8f08c

<p>```cpp</p>
<h1 id="include">include <igl/cotmatrix.h><a class="headerlink" href="#include" title="Permanent link">&para;</a></h1>
<h1 id="include_1">include <Eigen/Dense><a class="headerlink" href="#include_1" title="Permanent link">&para;</a></h1>
<h1 id="include_2">include <Eigen/Sparse><a class="headerlink" href="#include_2" title="Permanent link">&para;</a></h1>
<h1 id="include_3">include <iostream><a class="headerlink" href="#include_3" title="Permanent link">&para;</a></h1>
<p>int main()
{
Eigen::MatrixXd V(4,2);
V&lt;&lt;0,0,
1,0,
1,1,
0,1;
Eigen::MatrixXi F(2,3);
F&lt;&lt;0,1,2,
0,2,3;
Eigen::SparseMatrix<double> L;
igl::cotmatrix(V,F,L);
std::cout&lt;&lt;&rdquo;Hello, mesh: &ldquo;&lt;&lt;std::endl&lt;&lt;L*V&lt;&lt;std::endl;
return 0;
}
```</p>

from localhost using mkdocs serve

<div class="highlight"><pre><span></span><code><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;igl/cotmatrix.h&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;Eigen/Dense&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;Eigen/Sparse&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;iostream&gt;</span><span class="cp"></span>
<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"></span>
<span class="p">{</span><span class="w"></span>
<span class="w">  </span><span class="n">Eigen</span><span class="o">::</span><span class="n">MatrixXd</span><span class="w"> </span><span class="n">V</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span><span class="w"></span>
<span class="w">  </span><span class="n">V</span><span class="o">&lt;&lt;</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="w"></span>
<span class="w">     </span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="w"></span>
<span class="w">     </span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w">     </span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">;</span><span class="w"></span>
<span class="w">  </span><span class="n">Eigen</span><span class="o">::</span><span class="n">MatrixXi</span><span class="w"> </span><span class="n">F</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span><span class="w"></span>
<span class="w">  </span><span class="n">F</span><span class="o">&lt;&lt;</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="w"></span>
<span class="w">     </span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">;</span><span class="w"></span>
<span class="w">  </span><span class="n">Eigen</span><span class="o">::</span><span class="n">SparseMatrix</span><span class="o">&lt;</span><span class="kt">double</span><span class="o">&gt;</span><span class="w"> </span><span class="n">L</span><span class="p">;</span><span class="w"></span>
<span class="w">  </span><span class="n">igl</span><span class="o">::</span><span class="n">cotmatrix</span><span class="p">(</span><span class="n">V</span><span class="p">,</span><span class="n">F</span><span class="p">,</span><span class="n">L</span><span class="p">);</span><span class="w"></span>
<span class="w">  </span><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="o">&lt;&lt;</span><span class="s">&quot;Hello, mesh: &quot;</span><span class="o">&lt;&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">endl</span><span class="o">&lt;&lt;</span><span class="n">L</span><span class="o">*</span><span class="n">V</span><span class="o">&lt;&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">endl</span><span class="p">;</span><span class="w"></span>
<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>

mixed site URL

By default the base URL is http://libigl.github.io/libigl/ (see: mkdocs.yml) however this is redirected to https://libigl.github.io/
At libigl repo itself the description text says:
"Simple C++ geometry processing library. http://libigl.github.io/libigl/"
but the README contains links without [...]/libigl/.
According to the website one should use the link: http://libigl.github.io/libigl/
And the links on the website itself are somewhat confusing because only [...]/libigl/tutorial/ is redirected to [...]/tutorial/.
Other links mostly contain [...]/libigl/ e.g. go to https://libigl.github.io/#coding-guidelines-and-tips the links for style guide and coding tips link to https://libigl.github.io/libigl/style-guidelines / https://libigl.github.io/libigl/coding-guidelines (broken) and not https://libigl.github.io/style-guidelines / https://libigl.github.io/coding-guidelines (working).
So basically there are many broken links: https://github.com/libigl/libigl.github.io/search?q=libigl.github.io%2Flibigl%2F&unscoped_q=libigl.github.io%2Flibigl%2F

I'd like to fix. Is it ok to replace all links to http://libigl.github.io/libigl/$something with http://libigl.github.io/$something.
Just creating a redirect like for libigl/index.html and libigl/tutorial/index.html is not sufficient because e.g. the link to Example 505 in the FAQ because the #parameter will be lost.

Alternatively all the .md file in docs/ could be moved into docs/libigl then http://libigl.github.io/libigl/ would be the correct site URL.

So it's more or less a decision if you want to use http://libigl.github.io/libigl/ or http://libigl.github.io/ (without [...]/libigl and the way it currently is).
Anyway just let me know which of the two versions you prefer so I can to submit a PR :)

Curvature and normal on hex mesh

I don't know if it is the right place. Is libigl capable of calculating curvatures and normal vectors on a hex mesh which means rectangular elements on surface.

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.