Git Product home page Git Product logo

teledynelecroy / signalintegrity Goto Github PK

View Code? Open in Web Editor NEW
129.0 35.0 47.0 970.61 MB

Python tools for signal integrity applications

Home Page: https://github.com/TeledyneLeCroy/SignalIntegrity/wiki

License: Other

Batchfile 0.01% Shell 0.02% Python 59.89% TeX 20.60% C++ 0.01% Makefile 0.01% Rich Text Format 0.80% Jupyter Notebook 18.67%
signal-integrity python s-parameters simulation calibration

signalintegrity's Introduction

signalintegrity's People

Contributors

biergaizi avatar dassumpc avatar eldarkg avatar jeremygraef avatar lalop avatar petepupalaikis avatar shielddigitaldesign 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

signalintegrity's Issues

Generators that reference projects

for generators that reference other projects, there is a small bug in that when the generator is created in the GUI, and a project is selected, the waveform within the project defaults to None and when the user clicks the box to show the name of the waveform in the symbol preview, the symbol disappears (probably hits some Tkinter error). This can be worked around by just entering the waveform name right away.

It can be fixed by initializing the values of all property strings to an empty string, instead of None, or by fixing how properties deal with None.

Installer

Currently only able to install software using:

pip install -e .

from the PySI directory. If I try use:

pip install PySI

It downloads some other package called PySI. It would be acceptable if:

python setup.py install

worked, but there seems to be some problems with this. Also, when I use this, it keeps rebuilding the help system - I believe this is because it's not able to read the helpkeys file and is not able to write it either.

App start failed on macOS 11.1 big sur

It works on Windows but my macOS.

heres are error messages

  File "/Users/doyouhike/project/WANDTEC/Tools/SignalIntegrity-master/SignalIntegrity/App/SignalIntegrityApp.py", line 1097, in main
    SignalIntegrityApp(projectFileName,external=external)
  File "/Users/doyouhike/project/WANDTEC/Tools/SignalIntegrity-master/SignalIntegrity/App/SignalIntegrityApp.py", line 326, in __init__
    self.UpdateRecentProjectsMenu()
  File "/Users/doyouhike/project/WANDTEC/Tools/SignalIntegrity-master/SignalIntegrity/App/SignalIntegrityApp.py", line 453, in UpdateRecentProjectsMenu
    self.FileMenu.entryconfigure(1,state='disabled')
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 2933, in entryconfigure
    return self._configure(('entryconfigure', index), cnf, kw)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 1476, in _configure
    self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: unknown option "-state"

And I've tried to comment line 452 to line 455 in SingalIntegrityApp.py

        if all(r is None for r in recentFileList):
            self.FileMenu.entryconfigure(1,state='disabled')
        else:
            self.FileMenu.entryconfigure(1,state='normal')

the App start normally.

Add ability to load additional waveforms for the waveform viewer

This could be done with a "load additional waveform" from the waveform viewer dialog.
Or (or in addition), I can add a waveform component to the schematic (just for viewing).
Also, I can add all source waveforms to the viewer possibilities.

This feature should be worked on in conjunction with methods to turn on and off waveforms.

Also, in the simulator or virtual probe, I might want to have a preference to process all waveforms all the time, and then one could simply turn them on and off. The waveform could be named simply by the device and port of the device.

Net Names

A user complained that there is no ability to enter net names.

I had not really thought about that, but what would be good is:

  • If net names can be added and connected to a wire
  • when the netlist is being generated, the rules for gathering wires would include a step of joining wire groups with other wire groups with the same net name.
  • probe names, when added to the circuit, would default to the net name, if there is one.

This might improve the ability to draw the schematics without being forced to draw wires (like modern schematic editors).

Add risetime to edge generators

This includes step and pulse generators, now that the prbs generator has this.
This improves things quite a bit - especially with the pulse generator where the pulse can be missed.
It also removes weird sampling effects.
the risetime should be adjusted similarly with the sample period, as in the prbs generator

s-parameter file extensions

when writing an s-parameter file, it is possible to write it with the wrong extension, which makes it useless. We should either:

Allow the extension, but throw an exception if the extension doesn't match the ports.

Don't allow the extension and automatically append it.

or maybe both - allow file names without an extension, in which the correct extension gets automatically appended, but if there is an extension, check that it is correct.

bbm.sty dependency in LaTeX for matrix output

Hi Pete

I wrote a short python script based on an example in the SI book (attached below) which in the end I could convert to a PDF and view the expected output. I noticed the LaTeX created includes "\mathbbm{I}" . This seems to require the bbm.sty file in Texlive. This is unfortunately not supported by the RHEL7/CENTOS7 rpm versions of texlive (it was in older versions with and extension package that isn't available for this Linux version). I believe for RHEL8/CENTOS8 there may be a compatible fedora rpm that provides bbm.sty but unfortunately this is packaged in a way not acceptable to CENTOS7.

To work around this I installed a 2020 (latest) texlive standalone installation (ie outside of rpm) to give me a pdflatex install that included bbm.sty. In general on a shared CAD linux system this approach is not great.

After doing this, I still had to modify the docstart parameter when initializing SystemSParametersSymbolic class to include a usepackage{bbm} to get pdflatex to correctly load the package.

Q1 : As far as docstart should bbm be included in the default ?

Q2 : To be compatible with the standard RHEL7/CENTOS7 installs (not uncommon among CAD software users) it might be nice to make the dependency on bbm optional.

Keith

import SignalIntegrity.Lib as si
sdp=si.p.SystemDescriptionParser()
sdp.AddLines(['device DV 4','device ZI 2','device ZO 2','connect ZI 1 DV 2',
'connect ZI 2 DV 1','connect ZO 1 DV 4','port 1 ZI 1 2 ZI 2 3 ZO 2 4 DV 3'])
ssps=si.sd.SystemSParametersSymbolic(sdp.SystemDescription(),size='small',
docstart="""\documentclass[10pt]{article}
\usepackage{amsmath}
\usepackage{bbm}
\usepackage{bbold}
\begin{document}
"""
)
ssps.AssignSParameters('DV',si.sy.VoltageControlledVoltageSource('\alpha'))
ssps.AssignSParameters('ZI',si.sy.SeriesZ('Z_i'))
ssps.AssignSParameters('ZO',si.sy.SeriesZ('Z_o'))
ssps.DocStart()
ssps.LaTeXSolution(size='big',solvetype='direct')
ssps.DocEnd()
ssps.Emit()

Variable Number of Port File Devices

Currently, we only support up to four port devices. Really need to support more.

In lieu of simply brute-force adding more multi-port devices (I may do that), it might be better to let the user enter the number of ports.

We could default to half on left and half on right.

Locked views when viewing transfer parameters

when I created the locking of views for the s-parameter viewer, i failed to notice that the default view locking when viewing transfer parameter should really be different.
the defaults should be to lock all frequency, time, and vertical views, in this case (not off-diagonal, or reciprocal, as is sometimes the case for s-parameters).
The user can still changes these to what he/she wants, but it's a bit annoying to have to do that.

I'm submitting this as an enhancement, because it's not such a big deal to the user.

How DC point can be added to S-parm dataset to allow impulse & step simulations

Pete,
Quite a while ago I asked why my S-parameter dataset was not producing time domain impulse & step response waveforms when I load the file. You rightly said that its because there is no DC point in the S-parameter dataset.
You then proceeded to describe how the tool can be made to generate that DC point by interpolation from the existing data. But, sadly, I lost that email thread and it's not discussed in this forum.
I also note you have improved (fixed) that DC point subject in errata for the book, so maybe it improves the code's calculations since last we talked.

Could you speak to that again for everyone's benefit?
Thanks!

Device Preview Window Variable Size

Currently the device preview window for the part picker is fixed size

Its size should be variable based on the size of the device

Currently this is only a cosmetic issue, but for larger devices it becomes problematic

Also, especially as the amount of text changes around the device (based on the user turning on display of various parameters), so any fix must account for this.

Time Gating and Impedance Peeling

Hi Pete,

I do love the De-Embedding feature. I would love even more a Time Gating feature. Is that something you could add in the future?
What I am looking for is a way to de-embed S-Parameters from fixtures that are present in the measured S-Parameters. I would like to remove that from the impedance profile.
Might there be a trick to do so already?

Best regards,
Edgar

Installation problems with release 1.1.8 - due to functools-lru-cache

After installation by the command pip install SignalIntegrity==1.1.8 and subsequent call of the Application I got the following error message:

pi@raspberrypi:~/.local/bin $ ./SignalIntegrity 
Traceback (most recent call last):
  File "./SignalIntegrity", line 6, in <module>
    from SignalIntegrity.App.SignalIntegrityApp import main
  File "/home/pi/.local/lib/python2.7/site-packages/SignalIntegrity/__init__.py", line 21, in <module>
    from .App import *
  File "/home/pi/.local/lib/python2.7/site-packages/SignalIntegrity/App/__init__.py", line 20, in <module>
    from .SignalIntegrityApp import SignalIntegrityApp
  File "/home/pi/.local/lib/python2.7/site-packages/SignalIntegrity/App/SignalIntegrityApp.py", line 34, in <module>
    import matplotlib
  File "/home/pi/.local/lib/python2.7/site-packages/matplotlib/__init__.py", line 133, in <module>
    from matplotlib.rcsetup import defaultParams, validate_backend, cycler
  File "/home/pi/.local/lib/python2.7/site-packages/matplotlib/rcsetup.py", line 31, in <module>
    from matplotlib.fontconfig_pattern import parse_fontconfig_pattern
  File "/home/pi/.local/lib/python2.7/site-packages/matplotlib/fontconfig_pattern.py", line 28, in <module>
    from backports.functools_lru_cache import lru_cache
ImportError: No module named functools_lru_cache

Make S-parameter viewer invoked as standalone top-level dialog

The s-parameter viewer is a really useful s-parameter viewer by itself, but currently it can only be invoked by opening up SignalIntegrity with a project canvas showing and then selecting it on the toolbar or dialog.

Also, SignalIntegrity can now be invoked with a project file as a command line argument.

What is needed is that when the command line argument is an s-parameter file, the viewer comes up without the project canvas around it and runs standalone as a viewer only.

Post-processing steps not used in imported projects

When projects are imported into other projects as either waveform sources or sources of s-parameters, the post-processing steps are not used. This is unfortunate, because that is what they were made for in the first place.

This seems to be due to a screw-up in the headless version of SignalIntegrity that contains lots of cloned code, and during the generation of the netlist, it forgets to add the post-processing.

This will generate confusing results because usually the included file has s-parameters that have been cached, and in these circumstances, sometimes the correct result will come out until un-cached.

I can't install the software on Ubuntu 16.04.6 LTS-desktop-i386.

oleg@oleg-VirtualBox:$ python3.7 -V
Python 3.7.7
oleg@oleg-VirtualBox:
$ cd /media/sf_VMs/SignalIntegrity-1.1.9
oleg@oleg-VirtualBox:/media/sf_VMs/SignalIntegrity-1.1.9$ sudo -H python setup.py develop
[sudo] password for oleg:
Traceback (most recent call last):
File "setup.py", line 21, in
from setuptools import setup,find_packages
ImportError: No module named setuptools
oleg@oleg-VirtualBox:/media/sf_VMs/SignalIntegrity-1.1.9$ sudo -H python3 setup.py develop
Traceback (most recent call last):
File "setup.py", line 21, in
from setuptools import setup,find_packages
File "/usr/local/lib/python3.7/site-packages/setuptools/init.py", line 20, in
from setuptools.dist import Distribution, Feature
File "/usr/local/lib/python3.7/site-packages/setuptools/dist.py", line 35, in
from setuptools import windows_support
File "/usr/local/lib/python3.7/site-packages/setuptools/windows_support.py", line 2, in
import ctypes
File "/usr/local/lib/python3.7/ctypes/init.py", line 7, in
from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
oleg@oleg-VirtualBox:/media/sf_VMs/SignalIntegrity-1.1.9$

Help System Opening

There seems to be issues on various machines with opening the help system.

Kavi reported that the control help works, but that he cannot open the main help file.

Recommend reviewing exactly what the code is doing when it tries to open the help system using Python's webbrowser tools

Capability to change port numbering on devices

for all devices at four ports and beyond, the correct port ordering cannot be obtained necessarily by just flipping the part.

We need a capability where the ports can be renumbered.

My idea is that you press a renumber button, then touch all of the ports in the device and it numbers them in the order they are touched.

Offset in "View s-parameters according to calc properties" data in the CTLE properties menu

Maybe I'm wrong but I think there's an issue with the "View s-parameters according to calc properties" data in the CTLE properties menu.
The S21 seems to be offset by +6dB on the plot.
I ploted the H(f) equation described in HELP menu. The result is 6dB below the S21 plot in SignalIntegrity.
The signal passing through the CTLE to an eye diagram seems correctly computed.

Cannot load or save to drives other than C:

The following error shows when trying to load a touchstone file from my Y: drive which is mapped to a network folder. This error occurs when trying to load/save a project or load touchstone files for the s parameter viewer.

The same files load fine when moved to my C: drive.

Exception in Tkinter callback
Traceback (most recent call last):
  File "c:\users\[user]\appdata\local\continuum\anaconda2\lib\lib-tk\Tkinter.py", line 1547, in __call__
    return self.func(*args)
  File "c:\users\[user]\appdata\local\continuum\anaconda2\lib\site-packages\SignalIntegrity\App\MenuSystemHelpers.py", line 138, in Execute
    return self.command()
  File "c:\users\[user]\appdata\local\continuum\anaconda2\lib\site-packages\SignalIntegrity\App\SignalIntegrityApp.py", line 791, in onSParameterViewer
    fileparts=FileParts(filename)
  File "c:\users\[user]\appdata\local\continuum\anaconda2\lib\site-packages\SignalIntegrity\App\Files.py", line 38, in __init__
    filename=ConvertFileNameToRelativePath(filename)
  File "c:\users\[user]\appdata\local\continuum\anaconda2\lib\site-packages\SignalIntegrity\App\Files.py", line 24, in ConvertFileNameToRelativePath
    filename=os.path.relpath(filename,os.getcwd())
  File "c:\users\[user]\appdata\local\continuum\anaconda2\lib\ntpath.py", line 529, in relpath
    % (path_prefix, start_prefix))
ValueError: path is on drive Y:, start on drive C:

I can't install the software on ubuntu-12.04.5-desktop-i386.

Attach the installation log:
oleg@oleg-VirtualBox:$ python --version
Python 2.7.3
oleg@oleg-VirtualBox:
$ pip --version
pip 1.0 from /usr/lib/python2.7/dist-packages (python 2.7)
oleg@oleg-VirtualBox:$ cd /home/oleg/Downloads/SignalIntegrity
oleg@oleg-VirtualBox:
/Downloads/SignalIntegrity$ python setup.py develop
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'long_description_content_type'
warnings.warn(msg)
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
warnings.warn(msg)
running develop
Checking .pth file support in /usr/local/lib/python2.7/dist-packages/
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

[Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/test-easy-install-6760.pth'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

/usr/local/lib/python2.7/dist-packages/

Perhaps your account does not have write access to this directory? If the
installation directory is a system-owned directory, you may need to sign in
as the administrator or "root" account. If you do not have administrative
access to this machine, you may wish to choose a different installation
directory, preferably one that is listed in your PYTHONPATH environment
variable.

For information on other options, you may wish to consult the
documentation at:

http://packages.python.org/distribute/easy_install.html

Please make the appropriate changes for your system and try again.

oleg@oleg-VirtualBox:~/Downloads/SignalIntegrity$ sudo -H python setup.py develop
[sudo] password for oleg:
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'long_description_content_type'
warnings.warn(msg)
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
warnings.warn(msg)
running develop
Checking .pth file support in /usr/local/lib/python2.7/dist-packages/
/usr/bin/python -E -c pass
TEST PASSED: /usr/local/lib/python2.7/dist-packages/ appears to support .pth files
running egg_info
writing requirements to SignalIntegrity.egg-info/requires.txt
writing SignalIntegrity.egg-info/PKG-INFO
writing top-level names to SignalIntegrity.egg-info/top_level.txt
writing dependency_links to SignalIntegrity.egg-info/dependency_links.txt
writing entry points to SignalIntegrity.egg-info/entry_points.txt
reading manifest file 'SignalIntegrity.egg-info/SOURCES.txt'
writing manifest file 'SignalIntegrity.egg-info/SOURCES.txt'
running build_ext
Creating /usr/local/lib/python2.7/dist-packages/SignalIntegrity.egg-link (link to .)
SignalIntegrity 1.1.9 is already the active version in easy-install.pth
Installing SignalIntegrity script to /usr/local/bin

Installed /home/oleg/Downloads/SignalIntegrity
Processing dependencies for SignalIntegrity==1.1.9
Searching for matplotlib>=2.2.3
Reading http://pypi.python.org/simple/matplotlib/
Download error on http://pypi.python.org/simple/matplotlib/: [Errno -2] Name or service not known -- Some packages may not be found!
Reading http://pypi.python.org/simple/matplotlib/
Download error on http://pypi.python.org/simple/matplotlib/: [Errno -2] Name or service not known -- Some packages may not be found!
Couldn't find index page for 'matplotlib' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading http://pypi.python.org/simple/
Download error on http://pypi.python.org/simple/: [Errno -2] Name or service not known -- Some packages may not be found!
No local packages or download links found for matplotlib>=2.2.3
error: Could not find suitable distribution for Requirement.parse('matplotlib>=2.2.3')
oleg@oleg-VirtualBox:~/Downloads/SignalIntegrity$

More than four pairs of network data per line in Touchstone

customer complained that the Touchstone files are output with all network data for a given frequency on one line.

The Touchstone spec says:

Data Lines Following the option line is the data set. Data sets contain the data for the network parameters (S-parameter, Z-parameter, etc.) specified by the option line.  Network data for 1-port and 2-port networks is contained on one data line, while data for 3-port and above are arranged on multiple data lines in a matrix format.  Each set of network data is preceded by a frequency value (i.e. the first entry in the first (or only) data line of a data set is a frequency value), and the network data itself is formatted as pairs of values (magnitude-angle, dB-angle or real-imaginary).   

There are three general rules for formatting data lines and data sets: 

1. No more than four pairs of network data are allowed per data line.
2. Individual entries in a data lines are separated by whitespace
3. A data line is terminated by a newline character (CR or CR/LF combination).
4. All data sets must be arranged in increasing order of frequency. 

so the bug is confirmed.

Part Properties Dialog Displays on Wrong Screen

This is very annoying.

When adding a part, after the part type is picked and the part properties dialog is opened, it is always placed at the upper left corner of screen 1. This is really annoying when you place the application on the second screen.

This ought to be an easy fix.

Failure in CoverageTest.bat

After installing PySI for developers, I ran the CoverageTest.bat. I get two failures shown in the attached file.
testfail

Ability to change reference impedance for s-parameter viewing

The reference impedance from the s-parameter file should be retained (I think it is already) and displayed.

The single reference impedance in Touchstone 1.0 should be shown and editable (should default to 50 Ohms).

When an s-parameter file is read, the port reference impedances should be defaulted to the single reference impedance in the s-parameter file.

The port reference impedances should be listed to the right of the s-parameter selections and should be editable for the session.

In the future, might want to find a way to encode in comments how the port impedances should be displayed when the file is read.

Also will want to find the right port impedances for mixed mode s-parameters - although this is very tricky.

Part Property dialog value commit

Commit value change to Part Property Value in Part Property dialog.

When a value is changed and Enter is not pressed, the property reverts to the original value.

My expectation for an input field such as this would be to click between (or tab between) them chaning values and then OK/Submit would commit the changes to the properties.

In the image attached, I was changing the duration to 200 s (200 seconds) and since I did not hit "Enter" the change was not committed.

image

Caching

Add ability to cache results. The classes that need to be affected are:
SystemSParametersNumericParser
VirtualProbeNumericParser
DeembedderNumericParser
SimulatorNumericParser

Along with

TransferMatricesProcessor

That would cover all caching requirements, except for the resampling of s-parameters, which I will probably not cache - I'm not really sure yet.

In the PySIApp, preferences should be added to:

cache results
clear cached results immediately
clear cached results on exit (or whenever a new project file is opened - clear the results of the one that is being replaced)

New User Install Help? :)

Did I do something wrong in the install? Thanks!!!

C:\Users\xx\Documents\software\Lecroy_SignalIntegrity\SignalIntegrity-1.1.9>python setup.py develop
C:\Program Files\Python35\lib\distutils\dist.py:261: UserWarning: Unknown distribution option: 'long_description_content_type'
warnings.warn(msg)
C:\Program Files\Python35\lib\distutils\dist.py:261: UserWarning: Unknown distribution option: 'python_requires'
warnings.warn(msg)
running develop
running egg_info
writing SignalIntegrity.egg-info\PKG-INFO
writing requirements to SignalIntegrity.egg-info\requires.txt
writing entry points to SignalIntegrity.egg-info\entry_points.txt
writing dependency_links to SignalIntegrity.egg-info\dependency_links.txt
writing top-level names to SignalIntegrity.egg-info\top_level.txt
reading manifest file 'SignalIntegrity.egg-info\SOURCES.txt'
writing manifest file 'SignalIntegrity.egg-info\SOURCES.txt'
running build_ext
Creating c:\program files\python35\lib\site-packages\SignalIntegrity.egg-link (link to .)
SignalIntegrity 1.1.9 is already the active version in easy-install.pth
Installing SignalIntegrity-script.py script to C:\Program Files\Python35\Scripts
Installing SignalIntegrity.exe script to C:\Program Files\Python35\Scripts

From an admin command prompt:
Installed c:\users\xx\documents\software\lecroy_signalintegrity\signalintegrity-1.1.9
Processing dependencies for SignalIntegrity==1.1.9
Searching for urllib3>=1.22.0
Reading https://pypi.python.org/simple/urllib3/
Download error on https://pypi.python.org/simple/urllib3/: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions -- Some packages may not be found!
Couldn't find index page for 'urllib3' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.python.org/simple/
Download error on https://pypi.python.org/simple/: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions -- Some packages may not be found!
No local packages or download links found for urllib3>=1.22.0
error: Could not find suitable distribution for Requirement.parse('urllib3>=1.22.0')

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.