Code Monkey home page Code Monkey logo

arrayv's Introduction

ArrayV

Discord GitHub Workflow Status (branch) GitHub Workflow Status (branch)

Over 200 sorting algorithms animated with 15 unique graphic designs

Join the Discord server!

To compile use:

./mvnw clean verify

To run use:

./run

Alternatively, you can double click on "run" or "run.bat" on Windows.

You can always download the most up-to-date pre-built JAR from GitHub Actions (link via nightly.link).

Legacy changelog

6/8/2020 - Version 3.5

  • NEW VISUALS: Sine Wave and Wave Dots!!
  • New sort: Bogobogosort
  • The bogo shuffle method is now unbiased
  • MultipleSortThreads further refactored
  • Visuals, VisualStyles enum, and Renderer significantly refactored (more to come!)

6/4/2020 - Version 3.2

  • New sort: Optimized Cocktail Shaker Sort
  • Significant refactoring for MultipleSortThreads and RunAllSorts
  • "Run All" button approx. time simplified
  • Modified delays for Binary Gnomesort
  • Documentation of GCC's median-of-three pivot selection in Introsort

6/3/2020 - Version 3.12

  • Counting Sort fixed
  • Optimized Bubblesort now optimized for already sorted inputs
  • Speeds for Quicksorts and Weave Merge during "Run All Sorts" improved

6/2/2020 - Version 3.11

  • Minor update to MIT license
  • Fixed typo in Flipped Min Heapsort
  • Improved highlights on Heapsorts (Already sorted heaps now display redundant comparisons)
  • Bug fix for Patiencesort on reversed arrays
  • Quicksorts exhibiting worst-case behavior during "Run All Sorts" run much faster
  • Same tweak as above to Weave Merge Sort

5/30/2020 - Version 3.1

  • Error messages with detailed information will now appear within the program!
  • Sound effects are now consistent on all platforms
  • New sort: "Flipped Min Heap Sort" by 'landfillbaby'!
  • Minor changes to code organization
  • New webhook to my Discord server! Check it out here: https://discord.com/invite/2xGkKC2

5/22/2020 - Version 3.01

  • Quick bug fix to the "Linked Dots" visual; The first line is no longer horizontal.

5/21/2020 - Version 3.0 is now released!

  • Sound effects are much more pleasant at slower speeds
  • Revamped "Run All Sorts" (It is now easier to create your own sequence of sorts!)
  • More accurate delay algorithm
  • Improved random shuffle algorithm (now with 0% bias!)
  • Cleaner statistics
  • Sort an array up to 16,384 (2^14) numbers!
  • The "green sweep" animation also verifies an array is properly sorted after watching a sort. If a sort fails, a warning message pops up, highlighting where the first out-of-order item is.
  • Minor tweak to the sort time method. It should be a slight bit more accurate now.
  • Slowsort and Sillysort's comparisons are now shown.
  • Gravity Sort has a more detailed visual now
  • Pancake Sorting is fixed
  • Counting Sort is fixed
  • Holy Grail Sort is enabled, but just note that it's a mock algorithm; not finished yet.
  • "Auxillary" typo fixed; program now says 'Writes to Auxiliary Array(s)'
  • Bug fixes and minor tweaks
    • Minor fixes to "Skip Sort" button
    • Weird static line bug with linked dots squashed
    • Other miscellaneous fixes and changes here and there

10/19/2019 - Version 2.1

  • Both Odd-Even Mergesorts now display comparisons
  • PDQSort's Insertion Sorts have been slowed down
  • New sorts, courtesy of Piotr Grochowski (https://github.com/PiotrGrochowski/ArrayVisualizer):
    • Iterative Pairwise Sorting Network
    • Recursive Pairwise Sorting Network
    • Recursive Combsort

10/13/2019 - Version 2.0 is now released!

  • Now includes 73 sorting algorithms, with 2 more that will be finished in the future
    • NEW SORTS:
      • Unoptimized Bubble Sort
      • Rotation-based In-Place Merge Sort
      • "Lazy Stable Sort" from Andrey Astrelin's GrailSort
      • Grail sorting with a static buffer
      • Grail sorting with a dynamic buffer
      • Andrey Astrelin's "SqrtSort"
      • CircleSort
      • Introspective CircleSort
      • Orson Peters' "Pattern-Defeating Quicksort" (PDQSort)
      • Branchless PDQSort
      • Morwenn's implementation of "Poplar Heapsort"
      • Recursive Binary Quicksort
      • Iterative Binary Quicksort
      • Iterative Bitonic Sort
      • Iterative Odd-Even Mergesort
      • "Bubble Bogosort"
      • "Exchange Bogosort"
      • Treesort
      • Optimized Gnomesort with Binary Search
      • "Cocktail Mergesort" (https://www.youtube.com/watch?v=fWubJgIWyxQ)
      • NOTE: "Quick Shell Sort" has been removed.
  • Significantly refactored code, more object-oriented
  • Optimized visuals -- the program runs smoother than ever!
  • Plug-and-play functionality -- using classgraph, you can now easily add your own sorting algorithms to the program! Documentation on that will be available in the future.
  • Sort delay system redesigned -- you can now change the speed of the program in the middle of a delayed compare or swap
  • Speed dialogue is now disabled while other windows are open
  • WikiSort no longer gets stuck on sorting its internal buffer
  • Tweaks to TimSort, mostly reimplementing its binary insertion sort
  • Binary Insertion Sort is now stable
  • The write/swap counts for inputs already sorted are fixed
  • The main/auxillary array write counts for Bottom-up Merge are fixed
  • Shuffling the array now clears the statistics
  • The highest pitches of the program's sound effects are fixed
  • Speeds for the "green sweep" and shuffling animations have been tweaked
  • Shatter Sort's highlights slightly tweaked
  • GrailSort's highlights slightly tweaked

KNOWN BUGS:

  • Certain sorts (comb sort, radix sorts) cause the program to forget the current speed
  • Certain sorts do not work with the "Skip Sort" button
  • Missing soundfont
  • SkaSort and HolyGrailSort produce errors -- this is normal, they aren't finished yet
  • No circular pointer -- will be fixed soon

PLANS FOR FUTURE RELEASES:

  • Javadocs!!
  • SkaSort
  • "Holy Grail Sort"
  • Options to:
    • Enter in your own set of numbers
    • Select CombSort gap sequence
    • Select ShellSort gap sequence
    • Change TimSort "minrun" value
    • Change IntroSort threshold for insertion/heap sort
    • Change Simple Shatter Sort rate(?)
    • Stop Run All Sorts(?)
    • Stop TimeSort(?)
  • Pre-shuffled arrays
  • Organize list of sorts into more categories
  • Run All Sorts in specific category
  • Subheadings for customizable sorts (e.g. display the number of buckets during a bucket sort)
  • "Pipe organ" distribution (half ascending, half descending)
  • Fixed circular pointer with much cleaner math
  • Toogle between pointer and black bar with circular visuals
  • Refactor/reorganize prompts and frames
  • Cleaner:
    • Tree Sort
    • getters/setters
    • method parameters
  • Small organizational changes

arrayv's People

Contributors

aphitorite avatar control55 avatar emeraldblock avatar flanlaina avatar fluffyyboii avatar fungamer2-2 avatar gaming32 avatar mcdude73 avatar pcboygames avatar samwalko avatar thatsoven 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

arrayv's Issues

Exception in thread "ComparisonSorting", index 32768 out of bounds for length 32768

When a sort ended on length 32768 length, the visual freezes, highlights and sound are frozen, but not cause of a freeze bug, it was beacuse it seemed when it tried to end the sort, the clear all marks bugged out.
image
I dont know why, but i didnt edit the highlight code, so it must be the same from my to your fork. It happens when i disable "End sweep anim", and when i am using a custom sort "Adaptive Sort" i made but not when i am using any other sorts. I do not get why it does not work, as if it was a mark index that was out of bounds (example Highlights.markArray(1, 32768) at 32768 length) it would've thrown an error at me, but it didn't. Yes, i tested importing my sort into your fork (with the added importation of MathExtra from the code) but it did not work.

Canceling sort with choose sort menu open crashes

Issue:
Clicking the "Cancel sort" button while in the select sort menu will crash the program

Screenshot:
Screen Shot 2022-04-05 at 1 14 48 PM

Steps to reproduce:
1: Select a sort.
2: Enter the selection menu while the sort is running.
3: Click the "Cancel sort" button.

Columns in images that are identical should be assigned the same value

In the visualizer for custom images, columns that have the exact same pixels as another column should be assigned the exact same value (leftmost prioritized, set as the guide vlue), and could be a toggleable option
cryofluid-mixer-bottom
For example, in this square, all the values would be identical because each row is the same. Its kind of a niche threshhold because most images will never have the same columns of pixels, but still

Bug on startup

So I opened the .jar file and started using ArrayV. However I got this error:

java.io.IOException: mark/reset not supported
at java.util.zip.InflaterInputStream.reset(Unknown Source)
at java.io.FilterInputStream.reset(Unknown Source)
at com.sun.media.sound.AudioFileSoundbankReader.getSoundbank(Unknown Source)
at javax.sound.midi.MidiSystem.getSoundbank(Unknown Source)
at io.github.arrayv.utils.Sounds.loadInstruments(Sounds.java:346)
at io.github.arrayv.utils.Sounds.prepareDefaultSoundbank(Sounds.java:276)
at io.github.arrayv.utils.Sounds.(Sounds.java:156)
at io.github.arrayv.main.ArrayVisualizer.(ArrayVisualizer.java:475)
at io.github.arrayv.main.ArrayVisualizer.main(ArrayVisualizer.java:1526)

Stalin sort fails

steps to reproduce:
open ArrayV without tweaking any settings
select stalin sort

expected behaviour:
sort completes normally with no errors

actual behaviour:
sort fails with error:
The sort was unsuccessful;
array[0] != validateArray[0]

Attached image of the error and ArrayV settings:
Screenshot 2024-05-10 120950

blank error

So i was just messing around with some sorts and on reversed sorting PArrarel 3 smooth comb sort errored with this:
image
it doesnt even say anything

how to open

what does it mean to run ./run in shell or ./mvnw clean verify? the run.bet file says something about java-home

how to move window

The main window appears at the corner of the screen. I can't move it and the "choose sort" window opens offscreen.

Extra sort expired again.

This is going to continue to happen unless you actually just supply it like a normal person rather than rely on ancient github actions.

#97

Address strobing/flashing due to showing aux arrays

Some sorts rapidly create and delete external arrays, creating extreme flashing when they are shown.

Possible solutions include:

  • Internally creating the arrays

  • Fixing the number of aux arrays shown, such as by reusing aux arrays or creating a new system to set the number of aux array slots shown

There is also a possible concern of strobing/flashing caused by problems other than showing aux arrays.

Suggestion: Add recursion tracking

The statistics HUD should also include stats like recursion depth and the number of recursions, like in PCBoy's videos. This is also to accurately measure the space complexity of recursive sorts.

ArrayV refuses to load custom soundbanks

Errors

ArrayV at the start it shows this:
image

After that, it works just fine (and even plays the sound), but trying to choose a soundbank shows me this:
image

What I did

  1. Open the program (error box 1)
  2. In the window with sound settings, press "Choose soundbank..."
  3. In the appeared window choose any *.sf2 file.
  4. Get an error (error box 2)

Computer specs that can save your time

OS: Microsoft Windows 11, 21H2
CPU: Intel Core i3-1005G1 @ 1.20 GHz
GPU: None (Intel UHD Graphics)
RAM: 4 GB (3,81 GB available, other dedicated to UHD Graphics I suppose)
Type: Laptop

Incorrect Run All Configuration

The run all configuration for all exchange sorts is incorrect.
The text that I underlined in the attached picture is "LRQuickSortParaell", which it should be "ReverseBubbleSort".
Please fix it for me.
e

Can't build anymore, says dependencies missing

The output of ./mvnw.cmd clean verify:

[ERROR] Failed to execute goal on project ArrayV: Could not resolve dependencies for project io.github.arrayv:ArrayV:jar:5.2-SNAPSHOT: Failed to collect dependencies at org.apache.groovy:groovy:jar:4.0.2: Failed to read artifact descriptor for org.apache.groovy:groovy:jar:4.0.2: Could not transfer artifact org.apache.groovy:groovy:pom:4.0.2 from/to central (https://repo.maven.apache.org/maven2): Transfer failed for https://repo.maven.apache.org/maven2/org/apache/groovy/groovy/4.0.2/groovy-4.0.2.pom: Connect to repo.maven.apache.org:443 [repo.maven.apache.org/146.75.116.215] failed: connect: Address is invalid on local machine, or port is not valid on remote machine -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

More statistics customizability

More customizability for statistics. Examples include:

  • Customizing the font (family, size, etc.)
  • Adding a lot more statistics
  • Adding support for customizing the statistics

Groovy "Unsupported class file major version"

Exception in thread "main" BUG! exception in phase 'semantic analysis' in source unit 'jar:file:/C:/Users/anton/Downloads/ArrayV-5.1.jar!/scripts/categories/exchange.groovy' Unsupported class file major version 63
at org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:861)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:653)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:627)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:368)
at groovy.lang.GroovyClassLoader.lambda$parseClass$2(GroovyClassLoader.java:311)
at org.codehaus.groovy.runtime.memoize.StampedCommonCache.compute(StampedCommonCache.java:163)
at org.codehaus.groovy.runtime.memoize.StampedCommonCache.getAndPut(StampedCommonCache.java:154)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:309)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:543)
at groovy.lang.GroovyShell.parse(GroovyShell.java:556)
at groovy.lang.GroovyShell.parse(GroovyShell.java:568)
at groovy.lang.GroovyShell.parse(GroovyShell.java:586)
at io.github.arrayv.groovyapi.ScriptManager.loadScript(ScriptManager.java:232)
at io.github.arrayv.groovyapi.ScriptManager.loadBuiltinScripts(ScriptManager.java:310)
at io.github.arrayv.groovyapi.ScriptManager.loadDefaultScripts(ScriptManager.java:274)
at io.github.arrayv.main.ArrayVisualizer.(ArrayVisualizer.java:556)
at io.github.arrayv.main.ArrayVisualizer.main(ArrayVisualizer.java:1526)
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 63
at groovyjarjarasm.asm.ClassReader.(ClassReader.java:199)
at groovyjarjarasm.asm.ClassReader.(ClassReader.java:180)
at groovyjarjarasm.asm.ClassReader.(ClassReader.java:166)
at groovyjarjarasm.asm.ClassReader.(ClassReader.java:287)
at org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:83)
at org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:255)
at org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:193)
at org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:175)
at org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:129)
at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClassNullable(AsmReferenceResolver.java:57)
at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:44)
at org.codehaus.groovy.ast.decompiled.TypeSignatureParser.visitEnd(TypeSignatureParser.java:113)
at groovyjarjarasm.asm.signature.SignatureReader.parseType(SignatureReader.java:206)
at groovyjarjarasm.asm.signature.SignatureReader.accept(SignatureReader.java:122)
at org.codehaus.groovy.ast.decompiled.ClassSignatureParser.parseClassSignature(ClassSignatureParser.java:104)
at org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:36)
at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:222)
at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getUnresolvedSuperClass(DecompiledClassNode.java:129)
at org.codehaus.groovy.ast.ClassNode.getUnresolvedSuperClass(ClassNode.java:1049)
at org.codehaus.groovy.ast.ClassNode.getSuperClass(ClassNode.java:1043)
at org.codehaus.groovy.control.ResolveVisitor.transformPropertyExpression(ResolveVisitor.java:944)
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:790)
at org.codehaus.groovy.ast.expr.Expression.transformExpressions(Expression.java:49)
at org.codehaus.groovy.ast.expr.ArgumentListExpression.transformExpression(ArgumentListExpression.java:67)
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:805)
at org.codehaus.groovy.control.ResolveVisitor.transformMethodCallExpression(ResolveVisitor.java:1146)
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:796)
at org.codehaus.groovy.ast.expr.BooleanExpression.transformExpression(BooleanExpression.java:46)
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:805)
at org.codehaus.groovy.ast.expr.TernaryExpression.transformExpression(TernaryExpression.java:50)
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:805)
at org.codehaus.groovy.control.ResolveVisitor.transformPropertyExpression(ResolveVisitor.java:913)
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:790)
at org.codehaus.groovy.ast.expr.Expression.transformExpressions(Expression.java:49)
at org.codehaus.groovy.ast.expr.ArgumentListExpression.transformExpression(ArgumentListExpression.java:67)
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:805)
at org.codehaus.groovy.control.ResolveVisitor.transformMethodCallExpression(ResolveVisitor.java:1146)
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:796)
at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:108)
at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:41)
at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:86)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:168)
at org.codehaus.groovy.control.ResolveVisitor.visitBlockStatement(ResolveVisitor.java:1413)
at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:70)
at org.codehaus.groovy.control.ResolveVisitor.transformClosureExpression(ResolveVisitor.java:1124)
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:798)
at org.codehaus.groovy.ast.expr.Expression.transformExpressions(Expression.java:49)
at org.codehaus.groovy.ast.expr.ArgumentListExpression.transformExpression(ArgumentListExpression.java:67)
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:805)
at org.codehaus.groovy.control.ResolveVisitor.transformMethodCallExpression(ResolveVisitor.java:1146)
at org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:796)
at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:108)
at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:41)
at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:86)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:168)
at org.codehaus.groovy.control.ResolveVisitor.visitBlockStatement(ResolveVisitor.java:1413)
at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:70)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:142)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115)
at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:66)
at org.codehaus.groovy.control.ResolveVisitor.visitConstructorOrMethod(ResolveVisitor.java:299)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:110)
at org.codehaus.groovy.control.ResolveVisitor.visitMethod(ResolveVisitor.java:269)
at org.codehaus.groovy.ast.ClassNode.visitMethods(ClassNode.java:1135)
at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1128)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:52)
at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1357)
at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:259)
at org.codehaus.groovy.control.CompilationUnit.lambda$addPhaseOperations$3(CompilationUnit.java:204)
at org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:857)
... 16 more

Windows Defender False Positve

If program is downloaded, windows defender detects a "virus" in the program and the download is blocked. no viruses are in arrayv

How do i even open the program (not the jar file)

The run.bat doesn't work, idk how to run just a file (run, no extension), and i have no idea how to use the mvnw, do i need to install maven or something? Also, i don't want to use the jar, because i'm trying to add a sort i'm making, and i can't just import it because, it wants a java file, not a js file and idk how to code a sort in a java source file... Also, i'm planning to fork this repo, and i don't think i can compile a jar file from my fork, so could somebody help

Sort Writing API?

will there be an array writing api? like, you could write your own sorting algorithms or something, with some api and then it'll be sorted when you like compile and run it? idk but i think that is a really awesome idea

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.