GithubHelp home page GithubHelp logo

3rd_training_lua's Introduction

3rd_training_lua

Training mode for Street Fighter III 3rd Strike (Japan 990512), on Fightcade v2.0.91

The right version of Fightcade can be downloaded here

Main features

  • Can set dummy to counter-attack with any move on frame 1 after any hit / block / parry / wake-up
  • Can record and replay sequences into 8 different slots
  • Can replay sequences randomly and as counter-attack
  • Can save/load recorded sequences to/from files
  • Can display hit/hurt/throwboxes
  • Can display input history for both players
  • Special training mode to train parries and red parries

How to use

  • Download emulator from here and find the proper roms
  • Download the archive from here or clone repository
  • Extract the archive anywhere on your computer
  • Start the emulator, load the rom, start a match with P1 and P2 (you will need to map input for both players)
  • Go to Game->Lua Scripting->New Lua Script Window and run the script 3rd_training.lua from here
  • Follow instructions from the Output Console

Bug reporting / Contribute

If you want to be informed when a new version come out and/or discuss the current bugs and features, you can join the Discord server of the project.

This training mode is still in development and you may encounter bugs or missing features while using it. Please report any bug on the #bugs channel, and any feature request on the #features channel of the discord server.

If you wish to contribute or give any feedback, feel free to get in touch or submit pull requests.

Troubleshooting

Q: Missing rom, zip file not found

A: Make sure you have the proper roms. You must have at least 2 roms: sfiii3.zip and sfiii3a.zip. sfiii3 is the japanese version and the zip contains sfiii3_japan_nocd.29f400.u2. sfiiia is the american version and contains sfiii3_usa.29f400.u2.

You may need to rename zip files so they match exactly what the emulator expect for.

Q: When I run the script, the characters can no longer move

A: You are probably using the script on FBA-RR which is not supported anymore, in order to benefit from the last features and improvement you must run the script on Fightcade2's FBNeo emulator. However if you still want to use FBA-RR, you can go back to v0.6 which was the last version supported on FBA-RR.

Q: Emulator crash when I run lua script

A: Check video settings, you musn't use "Enhanced" blitter option.

Q: UI looks weird and hitboxes are misplaced

A: Check video settings, you must use "Basic" blitter option with no scanlines if you want the UI to work properly.

Q: Emulator doesn't run at all, there's a missing dll

A: Install prerequires from here

Guard Jump

The way guard jump works is that there are situations where you are throw invulnerable (cannot be thrown). These situations are after a reset, knockdown and blocking or being hit by an attack. This unthrowable state lasts for 6 frames. Guard jump should be input to block for this duration, jumping in a direction and then blocking again.

The current implementation of Counter-Attack Move does not work with how guard jump functions and needs to be input for all of these situations.

This is because it requires pre-buffered frames of input (the assumption of holding block beforehand in this case).

Because of its current implementation it will only work properly when knocked down. So in the other listed situations such as being reset or your opponent going for a tick throw, the Counter-Attack Move version in the dummy menu will get thrown if timed correctly.

To properly test guard jump in these situations you must use provided replays.

To use these replays go to the recording menu and follow these steps;

  1. Pick a slot you wish to load the replay into
  2. Navigate to "Load slot from file" and hit Light Punch
  3. Use left and right on your lever or keyboard to navigate the files in your recordings folder and find the Guard Jump you wish to use.
  4. Make sure the replay slot where this is loaded is active and replay mode is set to normal.
  5. Set "Counter Attack - Delay" in the recording menu to -4 (NEGATIVE 4) for each Guard Jump replay used.
  6. Navigate to the "Dummy" menu and set "Counter Attack - Move" to none, and "Counter Attack - Action" to recording.

Now every time your opponent is knocked down, is reset, blocks or gets hit it will attempt to guard jump in the direction of the replay used.

There are three files provided;

  1. Neutral Guard jump
  2. Guard Jump Back (most commonly used and is what Guard Jump in the Dummy menu currently uses)
  3. Guard Jump Forward (To get out of the corner or just try to jump over you)

Providing these replays prevents headache for users figuring out how to properly generate these replays and make them function in any given situation where it is applicable.

Hopefully these replays helps users practice against this technique while the "Counter Attack" functionality is being re-written. These replays won't be required forever unless you want to use them in some advanced use case.

But for now its best to add this feature so people can know of it's existence and provide replays for advanced players that wish to practice against it in non knockdown scenarios.

These replays are also provided for the purpose of randomized reaction or ordered reaction training for advanced users.

If you want randomization between the three replays then simply load each one into a different replay slot and use the "Random" replay mode with no other replay slots populated.

One such advanced use case example would be a Makoto player using the ability use replay weighting to simulate weighted decisions in order to practice post hayate mixups against an opponent that favors specific types of defensive options.

Thank you for your support in this matter and please enjoy!

Roadmap

Trello board

Changelog

v0.10 (29/05/2022)

  • [Feature] Charge special training (contribution of @ProfessorAnon)
  • [Feature] Hyakuretsu Kyaku special training (contribution of @ProfessorAnon)
  • [Feature] Dynamic input display (switch sides to avoid overlapping action) (contribution of @ProfessorAnon)
  • [Feature] Damage data display (contribution of @sammygutierrez)
  • [Feature] New 3rd_spectator.lua script for displaying info during replays without messing with input
  • [Feature] Number display for all gauges and bonuses
  • [Feature] Frame advantage display
  • [Feature] Character switch is now a lot easier:
    • Initial loading puts you right in the character select screen
    • You can go back to the character select screen by hitting alt-1 or from the entry in the training menu
    • Both characters and SA can be selected directly from P1 controller
    • Game intro animation is sped up by default, but this can be disabled in the options
  • [Feature] Gill and Shin Gouki can be selected from the character select screen
  • [Feature] Added back jump, forward jump, super jump, super forward jump, super back jump counter-attack options
  • [Feature] Added auto-crop last frames option
  • [Feature] Added guard jump first basic implementation + replays for advanced scenarios (courtesy of @Shodokan)
  • [Feature] Added "ordered" and "repeat ordered" replay modes
  • [Feature] Blocking system is now working in 4rd Strike (thanks to @speedmccool25 frame data recording)
  • [Bugfix] Fixed random parry not behaving properly
  • [Bugfix] Fixed self-cancellable LP/LK not correctly blocked on various characters
  • [FrameData][Q] added missing back mp + SA2

v0.9 (04/04/2021)

  • [Feature] Projectiles are now blocked/parried
  • [Feature] The dummy will now counter-attack on landing after an air recovery
  • [Feature] Yun's Genei Jin is now fully blocked/parried by the dummy
  • [Feature] Added 4rd Strike rom support in collaboration with @speedmccool25, but no frame data recorded yet.
  • [Improvement] When loading a save state, the recording state is reset to a useful state depending on the state you were before
  • [Bugfix/Improvement] All characters can now block/parry meaties and all first frame wake up hits
  • [Bugfix/Improvement] Fixed a lot of bugs in the overall blocking/parrying/counter-attack system
  • [Bugfix/Improvement] Revamped the wake-up / fast wake-up triggering and counter-attack system to be more reliable and maintainable
  • [Bugfix] Fixed recordings not loading correctly on US-regioned machines

v0.8 (23/12/2020)

  • [Feature] Special trainings section + parry special training
  • [Feature] Stun delayed reset mode
  • [Improvement] Added new menu categories and made a better split of options between them
  • [Improvement] Changed counter-attack random deviation cap from 40 to 600
  • [Bugfix] Fixed incorrect index causing errors when using random replay and weights
  • [Bugfix] issue#21 When the game is paused and hitboxes are enabled, an error occurs when loading a savestate
  • [Bugfix] issue#29 If you make a recording and rename it with lower case or space in its name, it won't launch
  • [Bugfix] issue#22 Input flipping is now decided upon character position diff instead of sprite flip (should fix wrong manipulations occuring after some moves)
  • [Bufix] Fixed meter gauges not updating after loading a save state
  • [FrameData] Added some missing Makoto wake up data
  • [FrameData] Added some missing Ken wake up data
  • [FrameData] Added some missing Ibuki frame data

v0.7 (12/11/2020)

  • Changed main supported emulator from FBA-rr to Fightcade's FBNeo fork
  • [Feature] Main player now acts as the training dummy during recording and pre-recording
  • [Feature] Added input history display for both players
  • [Feature] Added a weight to each replay slot to control randomness (Contribution of @BoredKittenz)
  • Redesigned controller display
  • [Bugfix] issue#8 Cannot Link moves into super
  • [Bugfix] issue#15 Time based super like geneijin not consistent with their meter usage
  • [Bugfix] issue#19 Error: Failed to save training settings to training settings.json
  • [Bugfix] issue#18 Another Big Issue: Constant Negative Edge While Recording
  • [Bugfix] issue#17 Large issue : P2 cannot do EX moves even if they have meter

v0.6 (04/04/2020)

  • Can save/load recorded sequences to/from files
  • Keep recordings between sessions (saved per character inside training_settings.json)
  • Added counter-attack delay and maximum random deviation to recording slots
  • Random blocking mode won't stop blocking in the middle of a true blockstring
  • Added First Hit blocking mode
  • Added refill delay for life and meter into training settings
  • [Bugfix] Fixed dummy bricking when triggering a recording counter attack with nothing recorded
  • [Frame Data] Elena
  • [Frame Data] Q
  • [Frame Data] Ryu
  • [Frame Data] Remy
  • [Frame Data] Twelve
  • [Frame Data] Chun-Li
  • [Frame Data] Sean
  • [Frame Data] Necro
  • [Frame Data] Dudley
  • [Frame Data] Yang
  • [Frame Data] Yun

v0.5 (23/03/2020)

  • Auto refill life mode
  • Auto refill meter mode + ability to set a precise meter amount from the menu
  • Infinite Super Art Timer mode
  • input autofire (rapid movement when holding key) in menus
  • Frame data prediction can resync itself to the actual animation frame, and thus handle a lot more blocking situations
  • All 2 hits blocking / parying Fixed
  • Blocking / parying of self cancellable moves supported
  • Improved wording of some menu elements
  • [Bugfix] Fixed infinite meter not working for player 2
  • [Bugfix] Fixed recording counterattack triggering in the middle of a blockstring
  • [Bugfix] Fixed recording counterattack restarting on hit
  • [Frame Data] Oro
  • [Frame Data] Ken

v0.4 (13/02/2020)

  • Urien frame data
  • Gouki frame data
  • Makoto frame data
  • Random fast wake up
  • Random blocking
  • Throws teching
  • Added music volume control
  • [Bugfix] Fixed Dudley not crouching correctly
  • [Bugfix] Fixed Oro not crouching correctly
  • [Bugfix] Do not counter attack on state load anymore

v0.3 (28/01/2020)

  • Can now record sequences within 8 different slots
  • Can play recorded sequences repeatedly and on random
  • Recorded sequences can by triggered as a counter-attack

v0.2 (26/01/2020)

  • New blocking system: Now works by recording hitboxes characteristics to a file for every move and predict hitbox collisions with actual frame data.
  • Can switch main player between P1 and P2
  • Removed all old frame data
  • Entered frame data for Ibuki, Alex and Hugo

v0.1 (25/11/2019)

  • Basic blocking and training options
  • Can set dummy to block, parry and red parry after x hits
  • Can set dummy to counter-attack with any move after hit, block parry or wake up
  • Entered frame data by hand for Ibuki and Urien

References & Inspirations

3rd_training_lua's People

Contributors

grouflon avatar nomeji avatar professoranon avatar sammygutierrez 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

3rd_training_lua's Issues

Option for the dummy to block *after* the first hit

It's very useful to learn combos for the bot to block after you land your first hit to see if your combo connects, yet the option we have is that it blocks the first hit and not the other ones (which honestly i dont really see the point)

The only way to do this currently is by making a recording of you walking backwards and put it as the counter attack action.

[Improvement] New stun modes

Idea: Stun mode
Currently there's "Disable Stun: yes/no".
• Yes works like the "normal game" (stun builds like normal, stuns if full, stun decay is normal)
• No has the stun always be 0%

What could be added:
• Next hit stuns
Stun is always at 99%, so the next thing inflicting stun stuns (helps with learning stun combo enders etc.)
• Stun reset delay
Like "life refill delay" or "meter refill delay", a reset delay on stun could be used to reset it back to 0% after X time.
You can put it high enough that stun still stacks up if you want to use XY hits one after another, but make it so that you don't have to wait for a longer while for the stun to reset to zero (or stun the opponent, then reset them to start at 0 again)

[bug] the menu does not appear

when I press start the menu does not appear
when I paste in the softfx the inputs are in the wrong place and in the basic or enchanced they do not appear (the menu does not appear in either) the example in the photo is in the softfx
20210303_160736

Suggestion: On-screen feedback for parry training and throw teching

If a parry attempt is detected within, say, 10 frames before or after the parry window for a move starts or ends, a popup would tell you exactly how early/late you were. If you landed the parry, it would tell you what frame of the parry window the move connected on (for example, 1/5 would come up if your parry came out on the same frame a jump in attack connected). This would help newer players get the timing down for regular parries and help more advanced players practice red parries.

In the same vein as this, it would be nice to have feedback for which frame of the throw tech window you input tech on. Right now, you can only practice late teching by using replays, and it's impossible to tell if the late tech you input would've been hit by a move that hits you for doing the tech very slightly too early

Dummy's Counter Attack Setting Doesn't Work While Jumping

I set Dummy as "Pose: jumping, blocking style: parry Blocking : always" and any counter-attack, and then I hit dummy while his jumping. The dummy only did counter attack after his landing. I expect that the dummy does counter attack immediately after his parrying in the air. I would like you to fix it. Thank you.

Is it possible to get more than 8 recording slots in the future?

There are a few situations that would be worth having more slots. Like practicing spacing/neutral against the randomized repeat option.

While 8 is quite a bit for most situations sometimes having 4-8 more could be very helpful with practicing situations with more than 8 options. Specifically where having slight timing variance isn't supported by just adding extra frames before beginning or after ending(since the variance might be in the middle of the actions and you'd manually have to set them). The best example of this is neutral due to the amount of walking one might do forward or backwards before making choices. So while 8 may be enough to practice a few at once being able to encompass more options into the same set allows for a more realistic experience.

Also not now since there are many things that need fixing/adding first but eventually it might be nice to be able to add weighting to the replay functionality. So its psuedo random since there are also situations where specific options are more likely to occur but others may also occur at less frequency.

[Improvement] On-screen feedback for how many frames the player is in an idle state

Where an idle state is defined as an animation that can be cancelled by normal attacks.

I can think of several instances where this would be useful information to have: to practice tight blockstrings, to practice acting quickly after an opponent's attack, to practice precisely delayed options after getting hit/blocking/getting knocked down, to practice really late jumping attacks, and to practice empty jump > immediate buttons

If it's difficult to get the data for every frame of every idle state, the first 15-20 would probably be the most important/most used for grounded ones

There seems to be no license information

Hello,

I would like to try and adapt this work to support ssf2xj as well. I wanted to start small and at least allow the script to run without crashing and display input when the rom is ssf2xj.

But I cannot find any License information in the repository, is this code under a free license?
Could you add license information so that we know if we can use this for derivative work or not?

Issue & Suggestions

First off thank you for trying to create a better alternative for training mode/practice for 3s... it honestly is a game that needs it.

---Issue---
If i press anything other than LK (I pressed LP) while in training menu(that is not recording screen) all actions in the game will lock up until i re-load the LUA, so it will not allow me to do anything with either player's buttons but sound and such will still play (it gave an LUA error as well). The only time LP didn't cause this for me is on the recording portion when it is meant to remove/clear a recorded action on its specific screen.

---Suggestions---
There should be a geneijin/seienbu mode for meter (if possible) that will allow you to see the meter depletion since full meter will not show this as this is an integral part of using these supers properly. This may be possible by simply adding a feature to let you use the LUA CUSTOM HOTKEY built into the EMU to set player 1/2 meter to maximum as the user sees fit. I honestly think using the LUA CUSTOM HOTKEY as a way to max or remove all meter would be very useful in general.

To take the above a step further I think the best way to implement it is to allow the user to set the amount of meter that it is set to with said LUA CUSTOM HOTKEY. This would allow players to create and practice DED scenarios (like where ken's c mk will super if the opponent is hit but will not if they block). You may also be able to add in the functionality of "Before replay use set meter" to make practicing these situations a bit easier without save states.

You could also eventually add special block/random action section that auto randomizes between blocking, jumping, hitting d+lp/throw and throwing while holding back. This would be useful for practicing confirming in geneijin without having to manually create 8+ scenarios, can also possibly add a "ms before next randomized action" for this (it should always start blocking). Alternatively I can use the other macro creation LUA to create a set of 20-30 patterns you can use as its randomized choices.

Another suggestion is to add some functionality between loading a saved state as well as starting the recorded sequence playing without needing to use a macro of some kind to make one button do multiple things using external programs such as X-Padder along with other software for macros. Currently I need to use AutoHotKey to create a macro that uses the load state button and then it will hit the button that is used to play recording twice in case all of the frames had not completed playing to cancel and re-start it. (I don't know if this is possible with LUA scripting)

The other issue brought up i will echo as well that being able to program pre-determined actions such as guard jump more easily (like the very start of the replay) without needing to worry about inputting it frame by frame can be extremely useful. Alternatively you can just include a guide on how to do this in the read-me.

Adding an option for advanced users such as "Record with frame zero pause" so you can manually set inputs frame by frame would be VERY helpful and take some of the frustration out of getting the pause on the first frame in its current state. This will make things like programming random parry after resets possible, but could also be added as a base functionality (such as akuma lk tatsu > s lp > SA1 or dudley jump X > land > duck SA3.... or geneijin resets) where if the opponent has been hit but can still parry due to the reset it chooses to parry the first hit that connects with it randomly.

One last thing is possibly adding in the ability to toggle the hidden bar portion of the other training mode LUA that NICA K.O showcased/distributed that has the lightning leg, charge partition, ability to parry etc etc. (as seen here- https://www.youtube.com/watch?v=ogefVDZGPY0)

Another thing is that because guard jump is a thing it might be a good idea to add in a way for us to change the amount of frames before counter attack occurs. So its not always frame 0-1, especially because with this you can put realistic guard jump as an option since it takes 3 frames of blocking before it can jump after a knockdown situation. This also helps with making more realistic situations and encompass varied timing of their choices.

Large issue : P2 cannot do EX moves even if they have meter

Regardless of if you are recording, manually inputting with keyboard or having it done as an auto-choice after being hit/blocking.

I got it to work once for a video I made a few days ago, but outside of that I can't get it to work.

It will work at the beginning when i first load the script if done as a response to block/hit from attack. But as soon as i try to modify anything by recording it no-longer will react with EX move. It cannot do EX on record no matter what I try.

When this happens I cannot input fireball motions going towards opponent even with keyboard after the fact. I can do 623, 214 motions but not 236.

This is 100% present in the current master version. I thought this was fixed in previous version?

Video examples:
https://streamable.com/aucbg1 (using fork from boredkittenz)
https://streamable.com/05pw5i (2nd half is using master version here with no weighting)

Edit: I tested version 4 and 5 and it is present in both of these versions as well.

Support for ssf2xjr1

Hello, following #43 ,
I’m opening this to talk about adding support for ssf2xjr1 rom to the tool, and ask questions I have.

As I explained for starters I am trying to make the input display work.

It works a bit with the attached patch draft.patch.txt

So, questions:

  1. What do you think of the organisation with a roms.lua file containing the rom specific information?
  2. What about rom specific code, for now I put it in the same file because there is only one function but it will be a mess quite soon if we do it like this I think. We should find a nice way to split each rom specific code in a file, and not mix rom information and rom specific code.
  3. When should is_in_match be true? I read an address that differs from 0 only when the players have character control, meaning it becomes true after the «fight!» title, and it goes back to false in between rounds, is that ok?
  4. How were the framedata json file built? Was that recorded with another script? Which features require this framedata?
  5. Is there anything special to know about the character select snapshot or is it just a snapshot of the character select screen of a fresh game? Should both player have pressed start before the snapshot?

Counter attack action interactions with Load State

If the dummy is in hitstun or blockstun and then a savestate is loaded, the dummy will still do a move after the state is loaded. If the state was loaded during hitstun, the move will either happen immediately upon load or after about half a second. If the state was loaded during blockstun, the move will either happen after half a second or not at all.

The most consistent way to get the dummy to act immediately upon load state is to do short short super and load state during super flash

Some Target Combos & Geneijin not auto-blocked. Supers not blocked when combod & More.

After twins frame data were added the dummy still does not block the mp > hp > b+hp target combo or anything in geneijin whatsoever.

Can still get around this with recording feature obviously.

I'm happy so many of the other things were added though. This is going to be an amazing tool for the community.

To add to the other guy's "links don't work" thing (tested with dudley, necro, ken, chun, gouki/akuma, ryu). Hes right. They also "on block" will force hits. So if you do f+mk link with dudley vs a force blocked opponent they will get hit by the super after blocking the f+mk . If you do any normal into a super the super will not be blocked with most characters (tested with chun, dudley, makoto, akuma/gouki, ryu, necro), . However characters like ken if you do Target combo into super it will get blocked til the last few hits. Remy's sa2 is blocked but sa1 is not. Necro blocked super still hitsThere are a lot of issues here.

Dummy not air parrying

Hello.

So I have the blocking style setting set to parry, and the blocking setting to always

And I have a recording of the dummy jumping at me so I can work some air parrying coverage stuff but he does not air parry. However he does parry on the ground. any way to fix this?

X.C.O.P.Y. super art meter does not work with the "infinite super art time" feature

i realize twelve isn't exactly the most common choice at a high level of play in this game, but still, i found something related to him. while playing using your tools, i noticed that twelve's X.C.O.P.Y. meter still depletes even if the "infinite super art time" function is enabled. is this intended behavior, or have i encountered a bug?

if it makes any difference, i am playing on fightcade v 0.2.97.44-38. i am using the japanese version of the rom, as well.

Allow replays to begin before the training dummy is actionable

There are certain option selects that can only be done by holding directions/doing motions before your character is actionable. Guard jumping is the most important example of this, but can also apply to things such as delayed DP/super out of block. Adding this would also allow you to add command inputs like DP/super to the replay slots, which would let you practice doing things like microblock >throw on your enemy's wakeup

10 frames before being actionable should be plenty of time to do most commands if they're entered frame by frame

(Suggestion)

Is it possible you guys can make Sean's 'party the ball' stage an actual fighting stage that is accessible through training mode? I see that Shin Akuma was put in there as a selectable character, so I was wondering if the same could be done for stages. Another suggestion would be if you could make selectable stages in training as well.

[Bug?] Dummy does not block when using Street Fighter III: 4rd Strike Arranged Edition

I don't know if this can be fixed in any way, but I have been using this script for Street Fighter III: 4rd Strike Arranged Edition. Every other feature works perfectly, except for blocking. For some reason, the dummy does not block, parry, or red parry at all, even when set to do so.

I don't know if this can be fixed, but I would be extremely happy if it could.

Time based super like geneijin not consistent with their meter usage

As long as refill option is used and set to full it will not properly show the meter usage over time from supers like Geneijin, seiei-enbu and oro sa1/3. It will also not

Half the time you do super and the time starts to go by it will not show and will continue to show full meter.

The other half it will function as it should.

It alternates.

If it is set to refill to an amount under full it will always not show timer. UNLESS your "refill timer" is high enough to "naturally" get to full gauge from something else.

example: https://streamable.com/kxb9lv

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.