Giter Site home page Giter Site logo

markdwags / razor Goto Github PK

View Code? Open in Web Editor NEW
137.0 16.0 90.0 13.36 MB

Razor is a free tool designed to help with simple tasks while playing Ultima Online.

Home Page: https://www.razorce.com

License: GNU General Public License v3.0

C++ 3.63% C 1.98% C# 92.74% Haskell 0.55% Perl 0.59% NSIS 0.33% HTML 0.17% CSS 0.01%
ultima-online assistant razor uo-razor

razor's Introduction

Razor: An Ultima Online Assistant

Razor Logo

Razor is a free tool designed to help with simple tasks while playing Ultima Online.

Build Chat on Discord status

Community Edition (CE)

The goal of this project is to revive and continue development and maintenance of the abandoned Razor project, focusing on "quality of life" improvements while attempting to keep the spirit and vision the original developers had for Razor and not driving down the path of advanced automation and scripting that's found in other UO assistants.

It's recommended that you use the ClassicUO client with this version of Razor, however it should will work with the original 5.x and 7.x clients though support for any bugs may be limited.

Learn more about this version of Razor by exploring the links below.

Installation & Help

If you need more help, please go here and review the documentation and/or join Discord and ask there.

Chat on Discord status

Razor Scripting Engine

Introduced in 1.6.4.2, Razor supports a command-based script language. For a comprehensive guide on the language and syntax, visit the Razor Scripting Guide.

Contributing & Code of Conduct

Please read CONTRIBUTING for more information on how to contribute to this project.

Please note we have a Code of Conduct, please follow it in all your interactions with this project.

License

This work is released under the GPLv3 license. This project does not distribute any copyrighted game assets. In order to run this application you'll need to legally obtain a copy of the Ultima Online Classic Client.

See the LICENSE file for details.

razor's People

Contributors

alikrc avatar andreakarasho avatar binff04 avatar dallenwilson avatar darklotus avatar deccer avatar derrick- avatar dissident76 avatar dronthego avatar jaedan avatar johangu avatar kamronbatman avatar kevineady avatar macb avatar markdwags avatar msturgill avatar rhemz avatar roxya avatar saschakp avatar sorsarre avatar voxpire avatar yazgoo 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

razor's Issues

[BUG]

When using a gnarled staff and you toggle the secondary ability ML Era and older it should try to use Force of Nature special Ability.

Currently it tries to use Para Blow.. this was also how it was on ClassicUO but it was recently fixed now it needs to be fixed in razor.

Thank you :)

[FEATURE/BUG] Make Smart Target functional

I have another issue with how the targetting works. You have multiple options for targetting. Im using Target next friendly & Target next non-friendly. But it doesn't really matter which one you use. THe issue is that Smart Target doesn't work in a useful way (correct me if I'm wrong). If you use Target Next Friendly, it will set the target to both Beneficial and Harmful. If you enable "Next/Previous does not set smart target", it obviously will not, but then you can't use the Next target to actually target things since nothing will ever be set. There are options to "Set Beneficial Target" and "Set Harmful Target", but those require you to manually click on bars - again, making it significantly worse/making the whole Next Target pointless. So How Should it work? Next Friendly should only set the Beneficial Target & Next Non-Friendly should only set the harmful target. Then smart target would probably be useful.

[BUG] Next Friendly & Next Non-Friendly sets both Beneficial and Harmful

I'm using ClassicUO.

In order to use smart target, you need to be able to efficiently set both Beneficial and Harmful targets. There are currently 70 different hotkeys that can be set for various targetting, but none of them do what is actually needed.

If you use Next Friendly Humanoid Target, it will set the target to both Beneficial and Harmful. If you use Next Non-friendly Humanoid Target, it will set the target to both Beneficial and Harmful.

I expect Next Friendly Humanoid Target (or any of the other options which imply you are cycling between friendly targets) to only set Beneficial. I expect Next Non-Friendly Humanoid target (or the other options which imply a non-friendly target), to only set Harmful.

This is the correct way to make Smart Target functional. You want complete control of who is assigned your Beneficial and who is assigned your Harmful flag.

A few more comments:

  • The checkbox: "Only Next/Prev Friend" sets Beneficial, is not enough. Next Non-Friendly will still set your Non-Friendly target to Beneficial as well as Harmful. You also might want to use other options than Next/Prev Friend, for example Next Friendly Humanoid.
  • If you want to set a Innocent or Guildmate as your Harmful target, that is still possible. Set Last Target should set both as Beneificial and Harmful. Anyone you manually cast a harmful spell on should be set as Harmful target. Anyone you manually cast a Beneficial spell on should be set as Beneficial target. You also have the option to hotkey Set Beneficial and Set Harmful.
  • I think it worked as above mentioned for a few days, but the recent version seems to have had this reversed.
  • To reiterate: It makes absolutely no sense to have Next Non-Friendly target set your target as both Beneficial and Harmful - what is the point of Smart Target then at all?

Thank you.

[BUG]Last Object opening inventory on UO:R

Using ClassicUO on UO:R

Trying to use LastObject Hotkey set from Razor (v1.6.2.23) and it opens inventory. When I unset the key and use ClassicUO's hotkey, lastobject works as intended.

Typing Issues

  • can't type in login screen
  • can't type when "always on top" is enabled
  • after awhile of typing in game, typing start to have missing strokes( delay) ? so it become difficult to type
  • Error | Profiler.ExitProfiledContext: context_name does not match current context.

on ClassicUO dev 0.0.1.223
Outlands Shard
Razor ver v1.6.0.6

[BUG] GumpResponse (Button 6) disconnects client when used in a macro while having a gump open

Using ClassicUO

Might be Outlands specific.

I made a macro, and the line GumpResponse (Button 6) will disconnect the client with the message Connection lost: SocketError, if the line is executed while any sort of gump is open.

The image below describes it. The button is the one the arrow points to. It doesn't have to be that specific gump open, any will crash it. It doesn't need the other lines in the macro, only the marked line is enough.

image

[BUG] Remove Weapon before casting

If you have this(Remove weapon before casting) toggled and you go to use a Ninjitsu ability (Death Strike specifically) it will remove the weapon by using this ability...

Not sure why you might have this toggled on a ninja character but it should function like Chivalry where it wont remove abilities when you cast chiv spells.

Thanks.

Autoopen doors not working with OSI

client position not passed to Razor since version 1.6.x.x (working fine in 1.5.0.17), therefore Razor doesn't know when it is near a door

[BUG] Screenshot tool

Screenshots do not work with ClassicUO client. This is mostly not needed with modern screenshot tools outside of the assistant but the screenshot on death is especially useful for all sorts of things.

[BUG] Auto-open doors in CUO don't open on direction change

Please include if you are using the standard OSI client or using ClassicUO.
CUO Only

Remember, Great Bug Reports tend to have:

  • A quick summary and/or background of the issue

When you are standing on a single tile, and move to face a door, the door doesn't open with Automatically Open Doors enabled. In the standard OSI client it does.

  • What you expected would happen

Turning should open the door even if you don't move. Moving into the door correctly opens it.

  • What actually happens

The door doesn't open, but if you debug the code, you do see the OpenDoorMacro packet sent.

[BUG] Error during launch on ClassicUO client

I had an issue loading Razor from ClassicUO on my Linux machine:

OS: Arch Linux x86_64
Kernel: 5.2.5-arch1-1-ARCH

I have updated my setting.json in ClassicUO directory to point at the path that my Razor installation is in, and when I ran it showed me the Razor logo unlike the default Razor.dll from the ClassicUO release file, but fails to actually load the main window.

The ClassicUO version that I'm using is Alpha - 0.0.1.11 and I tried both Razor v1.6.0.57 and Razor-dev-preview versions, and getting the same error.

ClassicUO continues to function though.

There is my current setting.json:

{
  "username": "",
  "password": "",
  "ip": "play.uooutlands.com",
  "port": 2593,
  "ultimaonlinedirectory": "/media/backup/static/ultima-online/outlands/Outlands Ultima Online",
  "clientversion": "7.0.15.1",
  "login_fps": 60,
  "debug": false,
  "profiler": false,
  "saveaccount": true,
  "autologin": false,
  "reconnect": false,
  "reconnect_time": 0,
  "login_music": true,
  "login_music_volume": 70,
  "shard_type": 2,
  "fixed_time_step": true,
  "plugins": [
    "/media/static/ultima-online/razor/Razor.exe"
  ]
}

And this is the output from the console:

10:14:01 PM |  Info    | 		Loading skillgrp.mul...
10:14:01 PM |  Trace   | 		Files loaded in: 467 ms!
10:14:01 PM |  Trace   | Network calibration...
10:14:01 PM |  Trace   | 		Setup packet for Ultima live
10:14:01 PM |  Trace   | 		Done!
10:14:01 PM |  Trace   | Loading plugins...
10:14:01 PM |  Trace   | 		Loading plugin: /media/backup/static/ultima-online/razor/Razor.exe
10:14:01 PM |  Trace   | 		assembly: 0
Plugin threw an error during Initialization.
Exception has been thrown by the target of an invocation.
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00051] in <7768781867c04892b60eb12ebb814c26>:0
  at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <7768781867c04892b60eb12ebb814c26>:0
  at ClassicUO.Network.Plugin.Load () [0x002d5] in <e90e2f5b26e844fcb5a90cdcbf156f96>:0  Cannot call Invoke or BeginInvoke on a control until the window handle is created
  at System.Windows.Forms.Control.FindControlToInvokeOn () [0x0001f] in <bc2a1fda48804a5f83c07ab7961072f0>:0
  at System.Windows.Forms.Control.Invoke (System.Delegate method, System.Object[] args) [0x00000] in <bc2a1fda48804a5f83c07ab7961072f0>:0
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control.Invoke(System.Delegate,object[])
  at System.Windows.Forms.Control.Invoke (System.Delegate method) [0x0001d] in <bc2a1fda48804a5f83c07ab7961072f0>:0
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control.Invoke(System.Delegate)
  at Assistant.SplashScreen.End () [0x00013] in <45285239565a4fc08fb7157de226ff84>:0
  at Assistant.Engine.Install (CUO_API.PluginHeader* plugin) [0x00136] in <45285239565a4fc08fb7157de226ff84>:0
  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0003b] in <7768781867c04892b60eb12ebb814c26>:0

10:14:01 PM |  Warning | 		Invalid plugin: /media/static/ultima-online/razor/Razor.exe
10:14:01 PM |  Trace   | 		Done!
10:14:01 PM |  Warning | This OS does not support the UOAssist API
10:14:01 PM |  Trace   | Cleaning routine running...

Any idea how I can fix it?

Title Bar Update Crash

buffs.Length = buffs.Length - 2;

Index Out Of Range Exception is thrown if the buffs collection is empty and hasn't appended any ", " to trim.

Caused by edge-case scenario when switching the mobile of an active client state.

[FEATURE] System message to tell you which type of target you're setting

If I use the hotkey for Set Beneficial & Set Harmful, it'd be nice for the system message to say what type of target you're about to set. Currently they both say "Target a new 'Last Target'". Because I don't use those buttons often, so I will forget which one is which when I need to press it.

image

[BUG] Items on ground disappear when dragged

OSI client 5.0.9.1 (Patch31) - Razor v1.6.3.42 (doesn't seem to occur with ClassicUO)

  • Summary: Items on the ground or added to paperdoll or containers sometimes disappear when dragged.

If the item was on the ground:

  1. if you leave the area and return it reappears where it originally was.
  2. If you dragged an item to a container or PD, it will be back on the ground at the original location.

If the item was on a PD or in a container when dragged: a re-log is required to make it reappear

  • Steps to reproduce (video linked: Video)
    Drag an item onto the ground from PD/container or drag item already on ground.
    Item has a high chance to disappear although not 100%.
    Leave area and return
    Item will be back on ground

Not sure but this looks like the same/similar bug to one in Razor 1.0.14 (https://web.archive.org/web/20131217044352/http://www.runuo.com/community/threads/razor-1-0-14-update-october-2013.535052/)

  • Notes: Seems to be a redraw issue in an area around the character?
    If you log in and dont move it usually doesn't occur but after moving it does

[FEATURE] - New Variable - Hidden

In the new Scripting language, please add the variable 'hidden' that detects if the person is currently hidden. Will help for some backstab and skill gain scripts.

If Conditional - Both Hands Empty

Is it possible to have an IF conditional that is in addition of the current two, which are L hand empty and R hand empty?

For example, this If conditional would check to see if there was anything in either hand, then return false if so, otherwise true if both hands are empty.

[FEATURE] Please add Macro support for Virtues

With the latest dev build you cannot invoke Virtues (for example, Honor) via Macro. The alternative is to write a macro that opens your paperdoll, opens the Virtues gump, and then selects the right Virtue, but this doesn't seem to work.

The Classic Client natively has a macro option called 'InvokeVirtue' which allows you to select Valor, Sacrifice, and Honor.

[FEATURE] rename razor script exstations

I propose to change the name of the extension to
.razors, .script or .rs
There already exist razor files (to avoid confusing)

Is there any intelligence for Visual Studio code to create the script?

[BUG] Crashes when logging in

Crashes and throws infinite ammount of error windows
Steps to reproduce:

  1. Run Razor
  2. Type in name and password
  3. Select shard
  4. Select character
  5. Crashes

Crash.log: https://pastebin.com/aMepTAZu

Notes:
Windows 10
Razor version 1.6.4.11
Tested on both OSI client version 7.0.85.15 and ClassicUO version 0.1.3.439
Error window says Packet Filter Exception
This crash seems to happen when there are lots of mobiles doing lots of actions when logging in, like in Ophidians vs Terathans battling each other.

[FEATURE] Distinguish items by hue

Currently the razor scripting cannot distinguish when items have the same graphics ID but a different hue, for instance, leather is seen as the same as dull hide when using agents.

Allow commands that are related to targeting by graphics ID, to distinguish hues.
Allow agents to distinguish items that have the same graphics ID, to distinguish hues.

Common target list for macro variables

Please make one list of targets and various buttons to add them as absolute target, double-click target, lift target, etc. This would make easier to script things like restocking or interacting with mounts and other items that require different types of interactions (targeting, dbl clicking, etc) without having to add them to more than one list

ClassicUO Casting Chivalry From Chivalry Book

This only happens when using chivalry from a book, rather than a hotkey. The people on their Discord said this is a Razor issue.

System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: index
at System.Linq.Enumerable.ElementAt[TSource](IEnumerable1 source, Int32 index) at Assistant.PacketHandlers.ExtendedClientCommand(Packet p, PacketHandlerEventArgs args) at Assistant.PacketHandler.ProcessFilters(List1 list, Packet p)

Checkbox to disable dropping a spell with Target (XYZ) Nearest.

When using Target keys in Razor the default setting is to drop a spell if you have a cursor up. For example, using Target Nearest Non-Friendly Humanoid, it will drop the cursor and target the intended target with the spell. Several people have requested the ability to just get that target, but drop the spell with the last target key when they want to instead.

[BUG]

When using a gnarled staff and you toggle the secondary ability ML Era and older it should try to use Force of Nature special Ability.

Currently it tries to use Para Blow.. this was also how it was on ClassicUO but it was recently fixed now it needs to be fixed in razor.

Thank you :)

[BUG] Profile xml reset most of the variables at opening

Hello,
I'm using ClassicUo with Razor 1.6.4.32.

The issue I'm having is that everytime I restart client, my default profile reset the scriptvariables xml field.
I checked and when I close the client I have the xml with scriptvariables section like this
<scriptvariables>
<scriptvariable type="0" flags="0" serial="0x4028374B" x="44" y="65" z="44" gfx="3967" name="test" />
</scriptvariables>

and after opening the client and switch profiles it goes back to
<scriptvariables/>

edit: I thought it was when I close account, but it actually happens when I switch profiles.

If Conditional - Cursor Target - Beneficial or Aggressive

Would like to be able to decide how my targeting will work if I have an aggressive spell or a beneficial spell in my targeting macro.

For example, if I cast Greater Heal and use my last target macro, in that macro it would check to see if the spell is Beneficial and if so, target the last friend, otherwise, target the last enemy. Basically allowing us to build our own smart targeting system based on our own rules.

It also allows for better solutions to canceling spells and using the queue system.

[BUG]"if counter" throws exception

Using ClassicUO

When reading macro file from disk, the "if [counter]" statement throws exception. If line deleted and re-added, it will work. Problem does not occur with non-counter objects (i.e. "if Hits > 0" works. "if HealPotion > 0" fails)

If saving macro and then hitting reload macro -without any changes-, it will fail again. Remove line and re-add and it works.

Seems like the "if counter" lines are not read properly from disk, but they are fine if created in memory.

[BUG] Screenshots not capturing the screen.

When using the in-razor "Take ScreenShot Now" or using capture screen-shot on death/my death, these produce the file in the directory but does not follow through the process of copying the captured screen and saving it to the file itself. This has only recently started happening.

Auto Open Corpses as they come into range

Change "Auto Open Corpses" to open corpses as you walk up to them. When playing any kind of ranged character (Tamer, Summoner, Archer, etc) the feature cannot be used after death when you walk up to the corpse. You have to be within 1-2 tiles for the feature to work.

[BUG] Unhandled Exception Standard OSI

This is on the Standard OSI client.
Windows 10 Pro connecting to UO Renaissance.

I receive an Unhandled exception box with:

System.Net.Sockets.SocketException (0x80004005): The attempted operation is not supported for the type of object referenced
   at System.Net.IPAddress.get_Address()
   at Assistant.ClientCommunication.SetConnectionInfo(IPAddress addr, Int32 port)
   at Assistant.Engine.Main(String[] Args)

When Razor loads the client, but the client then loads normally - but I can't create my account - it hangs on 'verifying account'.

[BUG]

Version "stable".
Installed from script.
Playing on custom UO server.

Symptom: Immediate after death cannot move in any direction. Se only text "I'm dead and I cannot do that"
Restart of game is workaround for now (relogin, without closing application).

[BUG] Overhead spam when using pets

Using ClassicUO.

When you attack with pets, and also when a mob dies with pets in your control, it appears that Razor performs an all-names or something similar on the pets as well as the target. You get a spam of text above the pets heads.

If you disable show incoming creatures/corpses, you will not get the spam of the pets name, but the spam of other messages such as [Last Target] will remain. A workaround is to use the CUO show incoming, and disable it in Razor as well as use filter repeating overhead messages. It works perfectly fine that way, but there are some situation where you don't want to filter overhead messages, and it's also not readily apparent that people will discover this workaround if they encounter it themselves. So all in all, would be better with a fix if it is possible.

Here is how it looks with show incoming enabled in Razor:
https://imgur.com/AIKdElw

Here is how it looks with show incoming disabled in Razor:
https://imgur.com/u7lGcYw

Mini Heal Self & G Heal Self

Currently the "Mini-Heal/Cure Self" works as expected, but the "Heal/Cure Self" tries to be "smart" and cast either mini or g heal. I suggest that the "Heal/Cure Self" hotkey be for G heal and not use the "smart" formula.

If you want to keep the "smart" heal, name it as such, and add a G Heal/Cure Self hotkey as well.

[FEATURE]next/prev monsters

Add next/prev monsters for all the different notoriety types similar to what you have done with humanoids.

[BUG] ClassicUO: Agents

Organizer
When setup for your backpack and have the target container open, it will not move any item from the container to your backpack. It will work if you have a separate container in your backpack to sort into.

Restock
When restocking from a target container to your backpack it will only take items if there is more than one stack. Which stack it takes seems to be random, if there is only one stack it will not restock. This appears to be happening with all containers.

Scavenger
Is not picking up items from the ground when enabled, even when right on top of them. I know with the old razor you could set the pick-up range and delay which I didn't see in this one. So I'm assuming it's within 2 tiles similar to the auto-open corpses feature.

Note: It's possible that I'm performing these incorrectly as I'm basing the functionality on the older version of Razor which could have been changed or settings moved that I didn't notice. If that is the case feel free to direct me in the right direction so I can properly test the functionality and get back to you.

[BUG] Smart always on top not working

  • Windows 10 Insider Preview Slow Ring Build
  • ClassicUO v0.1.3.600
  • Razor v1.6.5.3 preview build

I expected "Smart always on top" to toggle "always on top" on and off whether I had my client focused or not.

That's not what's happening. Instead it works for the first time I focus another window, but if I focus back my client and focus another window again it stays always on top until I unchecked the option.

Reproduction:

  • Launch ClassicUO with Razor and log into your character
  • Make sure "Use Smart Always on Top" is checked under the "General" tab on Razor
  • Switch windows focus, between the client and other programs such as Chrome
  • See Razor window will stay on top of Chrome

[FEATURE] Turn Off update or save existing ClassicUO config

Fresh install from Your's PowerShell script.

Problem:
had to add to ClassicUO.exe.config " " to load Razor becouse of using newest .NET 4.

Every each open application ClassicUO is checking for updates and then downloads it, then it overrides ClassicUO.exe.config with newest config, deleting any entries there.

Could You set some variable that this didn't occur (update)?

[BUG] Razor with classicuo prevents windows (7) from shutting down

using ClassicUO, Windows 7

If cuo+razor are running when I tell windows 7 to shutdown razor prevents windows from shutting down even if I tell it to force shut down. Similar to say if you have an unsaved document windows will prevent shutdown however in that case if you tell it to force shutdown it will close the unsaved document. Razor is somehow keeping windows 7 from shutting down even if told to force close.

[FEATURE] Clear journal with script

Currently it does not appear that the scripting option has a feature to clear the journal, so when checking sys messages, the script will continuously see an already-present sys message and loop over and over.

Looking for a feature to clear the journal before checking for a sys message.

Timer functionality

Is there any plan to add a timer functionality? I want to be able to develop non blocking macros that check timers before doing action and not rely on fixed pauses/sleep.

Organiser does not work from deeper level containers to backpack

items will not be organised (razor says "Organize Agent did not find any items to move) if they are inside a container which is contained any levels below and inside the hot bag (organiser receiver). Or put in a different way, if the bag with the items is contained in any level below the hotbag (receiver), organiser won't find the items.

To reproduce, have a scavenger agent set to send easter eggs to a bag inside the backpack (together with everything else that gets scavenged/looted). When trying to organise the easter eggs to first level of backpack, organiser finds 0 items.

It will work if the receiver hot bag is not contained within the hot bag hierarchy.

Script Set Skill Locked/Raise/Lower [FEATURE]

Requesting script language support to Lock skill, raise skill and lower skill.

Is your feature request related to a problem? Please describe.
Not all characters use maximum skills and as razor is used to macro things like skill gains the ability to lock skills or lower/raise skills can solve the problem of over skilling or under skilling.

Describe the solution you'd like
setskill 'skill name' 'up/down/locked'

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.