Giter VIP home page Giter VIP logo

macintosh.js's Introduction

macintosh.js

This is Mac OS 8, running in an Electron app pretending to be a 1991 Macintosh Quadra. Yes, it's the full thing. I'm sorry.

Screenshot

Downloads


Windows
32-bit πŸ’Ώ Installer | πŸ“¦ Standalone Zip
64-bit πŸ’Ώ Installer | πŸ“¦ Standalone Zip
❓ Don't know what kind of chip you have? Hit start, enter "processor" for info.

macOS
Intel Processor πŸ“¦ Standalone Zip
Apple M1 Processor πŸ“¦ Standalone Zip
❓ Don't know what kind of chip you have? Learn more at apple.com.

Linux
32-bit πŸ’Ώ rpm | πŸ’Ώ deb
64-bit πŸ’Ώ rpm | πŸ’Ώ deb
ARM64 πŸ’Ώ rpm | πŸ’Ώ deb
ARMv7 (armhf) πŸ’Ώ rpm | πŸ’Ώ deb
❓ Don't know what kind of chip you have? Run `uname -m` in the console.

Does it work?

Yes! Quite well, actually - on macOS, Windows, and Linux. Bear in mind that this is written entirely in JavaScript, so please adjust your expectations. The virtual machine is emulating a 1991 Macintosh Quadra 900 with a Motorola CPU, which Apple used before switching to the PowerPC architecture (Apple/IBM/Motorola) in the mid 1990s.

Should this have been a native app?

Absolutely.

Does it run my favorite game or app?

The short answer is "Yes". In fact, you'll find various games and demos preinstalled, thanks to an old MacWorld Demo CD from 1997. Namely, Oregon Trail, Duke Nukem 3D, Civilization II, Alley 19 Bowling, Damage Incorporated, and Dungeons & Dragons.

There are also various apps and trials preinstalled, including Photoshop 3, Premiere 4, Illustrator 5.5, StuffIt Expander, the Apple Web Page Construction Kit, and more.

Can I transfer files from and to the machine?

Yes, you can. Click on the "Help" button at the bottom of the running app to see instructions. You can transfer files directly - or mount disk images.

Can I connect to the Internet?

No. For what it's worth, the web was quite different 30 years ago - and you wouldn't be able to open even Google. However, Internet Explorer and Netscape are installed, as is the "Web Sharing Server", if you want to play around a bit.

Should I use this for [serious application]?

Probably not. This is a toy - it's not the best nor the most performant way to emulate an old Macintosh. It is, however, a quick and easy way to experience a bit of nostalgia if you're not trying to do anything serious with it.

Credits

Please check out the CREDITS! This app wouldn't be possible without the hard work of Christian Bauer and James Friend, who did everything that seems like computing magic here.

License

This project is provided for educational purposes only. It is not affiliated with and has not been approved by Apple.

macintosh.js's People

Contributors

albuvee avatar arecsu avatar dependabot[bot] avatar egasimus avatar erichelgeson avatar felixrieseberg avatar feuermurmel avatar hmsjy2017 avatar jonathanpotts avatar kipdec avatar meeh0w avatar metaphox avatar prcr avatar staltz 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  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

macintosh.js's Issues

can't add mp3 files into unix folder

I'm having problems adding .mp3 files into the macintosh folder. It seems to me like the loader think it's some iso container and try to mount it. Renaming the extension to anything else will fix the issue for me.

No networking support

Netscape Navigator is pre-installed, but cannot resolve DNS or access web pages. What might be involved in adding networking support to this?

Write up description of how this was done

I've perused the code and noticed emscripten references. Was this accomplished by compiling C++ into JS?

Could this be done with Web Assembly to improve performance?

Unable to install in Linux (Centos)

Getting following error while installing in Linux (CentOS)

$ sudo yum localinstall ./macintosh.js-1.0.4-1.x86_64.rpm
Loaded plugins: fastestmirror, langpacks
Examining ./macintosh.js-1.0.4-1.x86_64.rpm: macintosh.js-1.0.4-1.x86_64
Marking ./macintosh.js-1.0.4-1.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package macintosh.js.x86_64 0:1.0.4-1 will be installed
Error: Invalid version flag: or

Also, getting the same issue with 1.0.5 version too.

License missing

Awesome project, I would love to play with it, do you think you could add a license? GPL would be nice :)

Edit: a license to reuse your code, not the VM!

Not downloading in Linux

The application is not downloading on ubuntu due to permissions error. Please change the permissions and give us the right to download.

prefs file not created on Linux(RPM)

I installed via https://github.com/felixrieseberg/macintosh.js/releases/download/v1.0.2/macintosh.js-1.0.2-1.x86_64.rpm
At bootup it gets stuck at 66.6% and exceptions is logged:

BasiliskII-worker-boot.js:209 getPrefs: Failed to set prefs Error: EACCES: permission denied, open '/usr/lib/macintosh.js/resources/app/src/basilisk/prefs'
    at Object.openSync (fs.js:462:3)
    at Object.func [as openSync] (electron/js2c/asar.js:140:31)
    at Object.writeFileSync (fs.js:1283:35)
    at getPrefs (file:///usr/lib/macintosh.js/resources/app/src/basilisk/BasiliskII-worker-boot.js:207:8)
    at startEmulator (file:///usr/lib/macintosh.js/resources/app/src/basilisk/BasiliskII-worker-boot.js:493:29)
    at self.onmessage (file:///usr/lib/macintosh.js/resources/app/src/basilisk/BasiliskII-worker-boot.js:357:5)
...
/usr/lib/macintosh.js/resources/app/src/basilisk/BasiliskII.js:5649 Uncaught Loading data file "prefs" failed.

/usr/lib/macintosh.js/resources/app/src/basilisk/prefs did not exist but /usr/lib/macintosh.js/resources/app/src/basilisk/prefs_template did. Copying the template to prefs resolved issue.

Not sure if this is bug or documentation oversight?

Arch linux

Can macintosh.js publish to arch linux ?

Neat Project. Maybe up the resolution a bit?

This is a neat project and works perfectly for what itΒ΄s made for, but is there a possible way to maybe change the resolution from 800x600 to 1024x800 or higher?

Changing installdir\resources\app\src\main\window.js and installdir\resources\app\src\renderer\screen.js width and height values will corrupt the emulator screen.

A/UX 3.1.1 (Apple UNIX)

Hi

It is a great project!

Do you plan to make something similar with A/UX?

I know that A/UX uses System 7.0.1, which is the older OS than Mac OS 8.

However, It could be the far more interesting alternative for the Linux/Unix/Mac users that want to run classic Mac applications
on Unix.

Linux deb fails

Running macintosh.js on Ubuntu 20.04 it crashes while starting with the following output:

(node:201806) UnhandledPromiseRejectionWarning: Error: Cannot find module 'github-url-to-object'
Require stack:

  • /usr/lib/macintosh.js/resources/app/node_modules/update-electron-app/index.js
  • /usr/lib/macintosh.js/resources/app/src/main/update.js
  • /usr/lib/macintosh.js/resources/app/src/main/index.js
  • at Module._resolveFilename (internal/modules/cjs/loader.js:961:15)
    at Function.o._resolveFilename (electron/js2c/browser_init.js:257:919)
    at Module._load (internal/modules/cjs/loader.js:844:27)
    at Function.Module._load (electron/js2c/asar.js:769:28)
    at Module.require (internal/modules/cjs/loader.js:1023:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object. (/usr/lib/macintosh.js/resources/app/node_modules/update-electron-app/index.js:5:12)
    at Module._compile (internal/modules/cjs/loader.js:1145:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1166:10)
    at Module.load (internal/modules/cjs/loader.js:981:32)
    (node:201806) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
    (node:201806) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

No Oregon Trail

P1 bug. Everything worked fine, but Oregon Trail was nowhere to be found.

Jk. Love you for doing this.

Controls in Duke3d on OSX

Hi,

first this I have to say this is an awesome project. I love it! :)

second the controls in duke3d seem buggy. the main character keeps moving left although no button is pressed.

cheers and keep up the good work :)

Uncaught loading data file "disk" failed

Running Arch and installed via git & npm. Seeing this error in Dev Tools and getting stuck on "Loading emulator dependencies". Have attempted changing permissions on the Macintosh.js directory as noted in other comments, but has not made a difference.

Screen Shot 2020-07-29 at 11 14 11 AM

Disk fails to load with /home and / on different partitions

When I try to load macintosh.js, it fails every time with the error

Uncaught (in promise) Error: EXDEV: cross-device link not permitted, rename '/home/michael/.config/macintosh.js/disk' -> '/usr/lib/macintosh.js/resources/app/src/basilisk/disk'

As far as I can tell, here's what's happening:
macintosh.js moves/renames/links (or something) the disk file from my ~/.config folder to its spot in /usr. On my system, ~ and / are in different partitions. This means that it needs to move the file between partitions. Apparently that's not allowed, hence the EXDEV error.

This may be a bit of an edge case, but AFAIK it's somewhat common practice on Linux. I understand if it's not possible/worthwhile to fix this, but it would be nice to be able to run on my system.

Netscpae does not work

2020-07-30 17_37_01-macintosh js
The application program "Netscape Navigator 3.01" could not be opened, because it might be damaged or not work on this type of computer.

How to transfer files?

I looked at the description of this and it told me to use the Help button at the bottom, I couldn't find one, can someone give me a more detailed guide on how to do this?

why?

dear God save us all

Mouse Random Jitter

I test drawing a spiral on Photoshop app, but weird jitter happens, making my spiral drawing out of whack...

Screen Shot 2020-07-31 at 11 12 15 am

Also, isn't there a Mac default Paint app?

I am testing this on MacOS Big Sur Beta 3

Disable accelerators / command key shortcuts or pass them to the emulated system

Running the standalone app on a Mac, I keep hitting command-W and similar shortcuts that, instead of being directed to the emulated target system, are received by the Mac app, causing it to close the window (and thereby killing it).

So, could you please see that all the shortcuts are removed from the app's menus? Would make using the emulation much less frustrating.

Besides that: Impressive work!

not loading

I deleted version 1.04 and download 1.05 but it only loads with a flashing folder. Can you pleas upload 1.0.4 macOs standalone in the release section since I do not know how to build one. Thank you

Installing apps (Hypercard)

Kudos on this really fun project!

Screen Shot 2020-07-28 at 14 19 51

Exhibit: could not find HyperCard 😒

Having HyperCard (or at least HyperCard Player and a bunch of stacks) would uncork a world of possibilities... Does it seem like it would be worth the lift?

Garbage around the screen and 2 mouse pointers showing on the screen

First of all, thanks for this awesome project, that makes so easy to play around with an old OS without having to set up emulators and applications!
But unfortunately I have some bugs, one that doesn't affect the interaction with the OS, so it is fine, but I've got some corruption around the window and reinstalling didn't fix it. [screenshot below] Captura de tela de 2020-07-30 18-34-55
The other bug affects the interaction a little, it is showing 2 mouse pointers, the regular one and other that shows up blinking while I move the pointer, it shows up and disappears while I move the pointer and when it shows it steals the focus from the other pointer (but the other pointer doesn't blink), so, for example, if I click just after moving the mouse, sometimes the other pointer that clicks, and when dragging the mouse to select multiple files, it changes the selection square between the 2 pointers.
I can record the screen if you want to show the problem.

My system: Linux (Fedora 32 Gnome - X11) running on an Intel Core i5-9400f with a Vega 56 GPU (using the regular open source drivers from Fedora repos).

macintosh.js stuck on "Loading emulator dependencies" on macOS 10.14.6

macOS 10.14.6 on MacBookPro10,1/16 GB RAM/512 GB SSD. macintosh.js downloaded, unzipped, moved to /Applications. When I double-click the app the "Loading emulator dependencies..." dialog comes up and nothing else. I can quit from the menu and can access Help and Credits but the app never loads or runs. I see what loos like a similar issue was fixed on Linux but I couldn't find any mention of this bug on macOS.

Thank you

massive thank you.

i’ve been tryna load LoadRunner the game for years!!!

this finally achieves that goal.

this is a thank you so much issue.

y’all done did great work!

A JavaScript error occurred in the main process

Uncaught Exception:
Error: Cannot create BrowserWindow before app is ready
at createWindow (/private/var/folders/30/n5zbf61j6qq4sgjg3vl5tpk00000gn/T/AppTranslocation/62F495A6-76E3-405F-8AD9-9B37685A7687/d/macintosh.js.app/Contents/Resources/app/src/main/windows.js:60:16)
at App.onActivate (/private/var/folders/30/n5zbf61j6qq4sgjg3vl5tpk00000gn/T/AppTranslocation/62F495A6-76E3-405F-8AD9-9B37685A7687/d/macintosh.js.app/Contents/Resources/app/src/main/index.js:35:5)
at App.emit (events.js:310:20)

Unable to change display to B/W

Some old software ask me to set the screen to Two colors, but when doing it n the monitors and sound panel, it crash the emulator.

How to install .dsk image?

Thanks for creating this!

Back in the day, I was one of the authors of Spectre (https://macintoshgarden.org/games/spectre). It's been a long time since I've had any way of accessing the game. It's hosted at the link above, but the download contains a .dsk file. I followed the instructions to load the .dsk file into the emulator, but when I double-click on the file from within the emulator I get "The document ... could not be opened, because the application program that created it could not be found". I've looked for instructions but haven't figured out how to load a .dsk image into macintosh.js. Is it necessary to convert the file to ISO or IMG?

Mac app (Helper)process @ ~115% CPU utilization

When loading up macintosh.js, i noticed macintosh.js (Helper) process is at 115%

Running:
MacBook Pro (16-inch, 2019)
Catalina (10.15.6)
2.3 GHz 8-Core Intel Core i9
16 GB 2667 MHz DDR4

CleanShot 2020-07-29 at 13 19 14
%

Can it run Xcode?

I have not installed and tried it but was wondering if anyone here have it installed and is able to use Xcode?

Can I run Mac.js on my Mac?

Hi!

2008 black MacBook Pro, 4 gig RAM, Core2 Duo
Debian Buster Stable 10.4

Loving the concept of running MacOS on my Mac,but while itinstalls well, and boots about as fast as I remember it from the Olden Days, alas it crashes as soon as I click on any of the folders or menus. No error messages appear, sadly.

What a pity because I do want to run Hypercard novels on it.

Is there a fix? Tips or trix?

Thanks for a great project.

Printer support

Hello.

It may well be that this is a bit too far fetched, but I do believe it would be really cool to have a printer installed inside the VM. If used, the VM would create a PDF file on the host computer.

Cheears!

Isn't this piracy?

I am not a lawyer, but I understand that you are distributing copies of licensed software.

A very cool project though!

Apps do not show up in the Macintosh.js folder

I was trying to move an application folder over from an old drive. The folder itself was not seen so I then moved the contents of the folder over. The files were seen but the apps were not. How can I install apps to the emulator?

Thank you for the effort, so much fun to see the old desktop πŸ‘

Launching macintosh.js doesn't finish and hogs resources in a very old 64-bit W7 HPE SP1 machine.

SquirrelSetup.log shows:
2020-07-29 22:51:34> Program: Starting Squirrel Updater: --install .
2020-07-29 22:51:43> Program: Starting install, writing to C:\Users\tester\AppData\Local\SquirrelTemp
2020-07-29 22:51:50> Program: About to install to: C:\Users\tester\AppData\Local\macintosh
2020-07-29 22:51:58> CheckForUpdateImpl: Couldn't write out staging user ID, this user probably shouldn't get beta anything: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\tester\AppData\Local\macintosh\packages.betaId'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
at System.IO.File.InternalWriteAllText(String path, String contents, Encoding encoding, Boolean checkHost)
at System.IO.File.WriteAllText(String path, String contents, Encoding encoding)
at Squirrel.UpdateManager.CheckForUpdateImpl.getOrCreateStagedUserId()
2020-07-29 22:51:58> CheckForUpdateImpl: Failed to load local releases, starting from scratch: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\tester\AppData\Local\macintosh\packages\RELEASES'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at Squirrel.Utility.LoadLocalReleases(String localReleaseFile)
at Squirrel.UpdateManager.CheckForUpdateImpl.d__2.MoveNext()
2020-07-29 22:51:58> CheckForUpdateImpl: Reading RELEASES file from C:\Users\tester\AppData\Local\SquirrelTemp
2020-07-29 22:52:00> CheckForUpdateImpl: First run or local directory is corrupt, starting from scratch
2020-07-29 22:52:11> ApplyReleasesImpl: Writing files to app directory: C:\Users\tester\AppData\Local\macintosh\app-1.0.3
2020-07-29 22:52:54> LogHost: Rigging execution stub for macintosh.js_ExecutionStub.exe to C:\Users\tester\AppData\Local\macintosh\macintosh.js.exe
2020-07-29 22:54:45> ApplyReleasesImpl: Squirrel Enabled Apps: [C:\Users\tester\AppData\Local\macintosh\app-1.0.3\macintosh.js.exe]
2020-07-29 22:55:06> ApplyReleasesImpl: Couldn't run Squirrel hook, continuing: C:\Users\tester\AppData\Local\macintosh\app-1.0.3\macintosh.js.exe: System.OperationCanceledException: The operation was canceled.
at System.Threading.CancellationToken.ThrowOperationCanceledException()
at Squirrel.Utility.<>c__DisplayClass11_0.b__0()
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Squirrel.Utility.d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass10_0.<b__0>d.MoveNext()
2020-07-29 22:55:06> ApplyReleasesImpl: Starting fixPinnedExecutables
2020-07-29 22:55:07> ApplyReleasesImpl: Examining Pin: Internet Explorer.lnk
2020-07-29 22:55:10> ApplyReleasesImpl: Examining Pin: Windows Explorer.lnk
2020-07-29 22:55:11> ApplyReleasesImpl: Examining Pin: Windows Media Player.lnk
2020-07-29 22:55:11> ApplyReleasesImpl: Fixing up tray icons
2020-07-29 22:55:11> ApplyReleasesImpl: cleanDeadVersions: for version 1.0.3
2020-07-29 22:55:11> ApplyReleasesImpl: cleanDeadVersions: exclude folder app-1.0.3
2020-07-29 22:55:37> InstallHelperImpl: Couldn't write uninstall icon, don't care: System.Net.WebException: The remote name could not be resolved: 'raw.githubusercontent.com'
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at Squirrel.UpdateManager.InstallHelperImpl.d__5.MoveNext()

I get a windowed black screen from the program too. Your two EXEs' hog the very old updated 64-bit W7 HPE SP1 PC's single core CPU to the max, and RAM (2 GB) keeps going up to almost 100% used. I downloaded and installed macintoshjs-1.0.3-setup-x64.exe. :(

Thank you for reading and hopefully answering soon. :)

System Crashed

It is an amazing piece of work keep up the good work I was using it the mouse, first of all, flickered then when I launched civilization 2 it crashed

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.