Git Product home page Git Product logo

terminatorplus's Introduction

TerminatorPlus [BETA]

This project is on pause indefinitely. Updates are not guaranteed. Please do not use in a production server.

Additionally, the readme and wiki may be outdated.

Java GitHub GitHub Discord

TerminatorPlus is a bukkit (paper) plugin that allows the creation of server-side player bots. Unlike many NPC plugins that already exist, this project has an emphasis on making the bots as human-like as possible.

Download

Releases are currently available on our Discord server, which can be found here. You can also find them on the releases page

Machine Learning

TerminatorPlus currently utilizes classic population-based reinforcement learning for bot PVP training. Q-learning is a work in progress, along with variable A* pathfinding.

API Support

Built API artifacts are available on the releases page, and the Discord server. See the API Module for available methods.

Example:

Terminator terminator = TerminatorPlusAPI.getBotManager().createBot(location, "BotName", skin, skinSignature);

Version Support

This plugin requires Paper 1.20.4.

Future Updates

This project is in a very early stage, and we have many more ideas to tackle.

  • Individual agents assigned per bot
  • A GUI to view currently loaded bots and cool data with them
  • AI data saved to the plugin data folder, able to be loaded into bots
  • Saving config data in memory

License

This project is licensed under Eclipse Public License.

terminatorplus's People

Contributors

badbird5907 avatar battledash avatar e914 avatar horsenuggets avatar legit4k avatar mcmdev avatar syrfps avatar thistestuser 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

terminatorplus's Issues

[Bug]: Bot doesn't take Thorns or Fire aspect

What happened?

It would appear that the bot doesn't take damage from "ability enchants".

Plugin Version

3.0-BETA

Server Version

1.16.5

Relevant log output

None

Additional Context

No response

Checklist

  • My issue does not match any existing issues on this repo

[Suggestion]: add a no build and place option

Feature Request

Add a setting called no build or place. It’s pretty straightforward and that the bot will not place or break blocks when trying to hunt you. This is good for if you want to play hide and seek with the bot on a map it can’t destroy the map you’re playing in.

Alternative Options

More settings

Additional Context

No response

Checklist

  • My suggestion does not match any existing suggestions on this repo

[Bug]: Slient client-side exception during player spawning

What happened?

Whenever a bot is spawned, an error appears in the log. This was tested to appear in vanilla 1.16.5 and doesn't affect bot rendering, but it is annoying because it quickly fills up the logs with spam.

Plugin Version

3.1-BETA

Server Version

Spigot 1.16.5

Relevant log output

[Render thread/FATAL]: Error executing task on Client
java.lang.NullPointerException: null
	at dwu.a(SourceFile:581) ~[1.16.5.jar:?]
	at or.a(SourceFile:57) ~[1.16.5.jar:?]
	at or.a(SourceFile:11) ~[1.16.5.jar:?]
	at ol.a(SourceFile:21) ~[1.16.5.jar:?]
	at ol$$Lambda$3410/1087242415.run(Unknown Source) ~[?:?]
	at aob.c(SourceFile:144) [1.16.5.jar:?]
	at aof.c(SourceFile:23) [1.16.5.jar:?]
	at aob.y(SourceFile:118) [1.16.5.jar:?]
	at aob.bl(SourceFile:103) [1.16.5.jar:?]
	at djz.e(SourceFile:1015) [1.16.5.jar:?]
	at djz.e(SourceFile:681) [1.16.5.jar:?]
	at net.minecraft.client.main.Main.main(SourceFile:215) [1.16.5.jar:?]
Deobfuscated stacktrace (top 3 lines):
java.lang.NullPointerException: null
	at net.minecraft.client.network.play.ClientPlayNetHandler.handleSpawnPlayer(ClientPlayNetHandler.java:719) ~[bin/:?]
	at net.minecraft.network.play.server.SSpawnPlayerPacket.processPacket(SSpawnPlayerPacket.java:68) ~[bin/:?]
	at net.minecraft.network.play.server.SSpawnPlayerPacket.processPacket(SSpawnPlayerPacket.java:1) ~[bin/:?]

Additional Context

This issue goes away if PacketPlayOutPlayerInfo is sent before the entity is added through nmsWorld.addEntity(bot) in net.nuggetmc.tplus.bot.Bot.

Checklist

  • My issue does not match any existing issues on this repo

[Suggestion]: Allow spaces in names

Feature Request

Allow spaces in names by putting name with a '-' will put a space in it so you can put words in it and you can change the skin with the other command anyways

Alternative Options

There isn't really much I can do at that time

Additional Context

No response

Checklist

  • My suggestion does not match any existing suggestions on this repo

[Bug]: /bot settings mobtarget is not working

What happened?

/bot settings mobtarget

The boolean value,
I tried :
true, 1, yes, positive

But they don't work.

Also, AIs are mining bedrock and barrier blocks to get me.
Plz, fix this.

At last, they are bad at swimming, also digging into the lava but suddenly boat clutching.

Plugin Version

3.1-BETA

Server Version

Spigot 1.18.2

Relevant log output

No response

Additional Context

No response

Checklist

  • My issue does not match any existing issues on this repo

[Suggestion]: A speedrunning bot

Feature Request

Minecraft but we are the hunter, and we chase a speedruning bot.
It's a good idea ?

Alternative Options

No response

Additional Context

No response

Checklist

  • My suggestion does not match any existing suggestions on this repo

[Bug]: Bot takes fire damage faster than normal

What happened?

the bot takes fire damage from lava & fire way faster than normal players do

Plugin Version

3.1-BETA

Server Version

Purpur 1.16.5

Relevant log output

No response

Additional Context

No response

Checklist

  • My issue does not match any existing issues on this repo

[Suggestion]: Hunter Respawning

Suggestion Hunter should be able to respawn

Pretty much it.

Alternative Options

I tried just adding saturation to the bot instead, but it wouldn't detect it. (Also, can you add that too?)

Additional Context

The hunters should be able to respawn since I hate having to summon it over and over again.

Checklist

  • My suggestion does not match any existing suggestions on this repo

[Bug]: class file for net.minecraft.server.level.EntityPlayer not found

What happened?

Trying to build the plugin with Idea say this error

Plugin Version

3.1-BETA

Server Version

spigot-api-1.18.1-R0.1-20220219.222924-77-shaded

Relevant log output

java: cannot access net.minecraft.server.level.EntityPlayer
  class file for net.minecraft.server.level.EntityPlayer not found

Additional Context

part the code where is the error is from Bot bot = Bot.createBot(loc, name);

Checklist

  • My issue does not match any existing issues on this repo

[Suggestion]: fix discord link

Feature Request

fix discord link please

Alternative Options

No response

Additional Context

No response

Checklist

  • My suggestion does not match any existing suggestions on this repo

How to use it?

Describe the feature you'd like added
A clear and concise description of what you want added or changed.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Hunter AI Customizable Difficulty Ranges

Feature Request

Adds different difficulties to manage how smart or dumb the AI is so you can go against someone your skill level if it's too hard, or make it harder for a challenge, allowing players to change the hunter for an easy time or difficult challenge, at a whim. (Such as slight changes to AI behavior for easy, medium, or hard, and being dumber on easy but smarter on medium and hard, or having less health etc.)

Alternative Options

No response

Additional Context

Some of the things that should be configurable are it's pvp behavior, speedbridging speed, skill set (how often it clutches). and also the AI getting armor as time moves on. (That's just a feature I feel could be interesting :D)
For example:
Easy Mode, weak, bad at pvp, doesn't clutch as often, does slightly less damage then you.
Normal Mode: Exactly how it is now, just gets armor as time progresses, can only go up to iron or diamond.
Hard Mode: Good at pvp, has mastered Minecraft mechanics, clutches regularly, and armor updates more, can go to netherite.
Terminator: Same as hard mode, just removed armor mechanic for this mode as it's unkillable.
This obviously isn't mandatory to add, but I feel it could be interesting and fun!

Checklist

  • My suggestion does not match any existing suggestions on this repo

[Bug]: Exception is thrown when attempting to tab complete a typo/unknown subcommand

What happened?

try to do /bot a, an exception will occur

Plugin Version

3.1-BETA

Server Version

Purput 1.16.5

Relevant log output

[21:11:20 ERROR]: Exception when Badbird5907 attempted to tab complete bot a
org.bukkit.command.CommandException: Unhandled exception executing tab-completer for 'bot a ' in net.nuggetmc.tplus.command.commands.BotCommand(bot)
at org.bukkit.command.SimpleCommandMap.tabComplete(SimpleCommandMap.java:263) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.tabCompleteCommand(CraftServer.java:2003) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.tabComplete(CraftServer.java:1975) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.craftbukkit.v1_16_R3.command.BukkitCommandWrapper.getSuggestions(BukkitCommandWrapper.java:58) ~[patched_1.16.5.jar:git-Purpur-1171]
at com.mojang.brigadier.tree.ArgumentCommandNode.listSuggestions(ArgumentCommandNode.java:71) ~[patched_1.16.5.jar:git-Purpur-1171]
at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:597) ~[patched_1.16.5.jar:git-Purpur-1171]
at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:579) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.PlayerConnection.lambda$a$7(PlayerConnection.java:862) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1339) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1332) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1469) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1142) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171]
at java.lang.Thread.run(Thread.java:831) [?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "net.nuggetmc.tplus.command.CommandMethod.getAutofiller()" because "commandMethod" is null
at net.nuggetmc.tplus.command.CommandInstance.tabComplete(CommandInstance.java:84) ~[?:?]
at org.bukkit.command.Command.tabComplete(Command.java:93) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.command.SimpleCommandMap.tabComplete(SimpleCommandMap.java:257) ~[patched_1.16.5.jar:git-Purpur-1171]
... 18 more
​

Additional Context

No response

Checklist

  • My issue does not match any existing issues on this repo

[Suggestion]: Depend on citizens

Feature Request

Citizens would make it a lot easier to control/manage the bot and make it compatible with tons of versions.

Alternative Options

No response

Additional Context

No response

Checklist

  • My suggestion does not match any existing suggestions on this repo

[Bug]: Something returning null

What happened?

Also fire damage is a crap ton faster than normal and also the bot is still there for a few seconds so it'll spam the death message like 5 times.

Error Code:
[13:33:35] [Craft Scheduler Thread - 3/WARN]: [TerminatorPlus] Plugin TerminatorPlus v3.0-BETA generated an exception while executing task 356
java.util.ConcurrentModificationException: null
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1493) ~[?:?]
at java.util.HashMap$KeyIterator.next(HashMap.java:1516) ~[?:?]
at net.nuggetmc.tplus.bot.BotManager.getBot(BotManager.java:156) ~[?:?]
at net.nuggetmc.tplus.bot.agent.Agent.lambda$onBotKilledByPlayer$1(Agent.java:80) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:81) ~[server.jar:3096-Spigot-9fb885e-296df56]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) [server.jar:3096-Spigot-9fb885e-296df56]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]

Plugin Version

3.0-BETA

Server Version

Spigot 1.16.5

Relevant log output

[13:33:35] [Craft Scheduler Thread - 3/WARN]: [TerminatorPlus] Plugin TerminatorPlus v3.0-BETA generated an exception while executing task 356
java.util.ConcurrentModificationException: null
        at java.util.HashMap$HashIterator.nextNode(HashMap.java:1493) ~[?:?]
        at java.util.HashMap$KeyIterator.next(HashMap.java:1516) ~[?:?]
        at net.nuggetmc.tplus.bot.BotManager.getBot(BotManager.java:156) ~[?:?]
        at net.nuggetmc.tplus.bot.agent.Agent.lambda$onBotKilledByPlayer$1(Agent.java:80) ~[?:?]
        at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:81) ~[server.jar:3096-Spigot-9fb885e-296df56]
        at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) [server.jar:3096-Spigot-9fb885e-296df56]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]

[13:33:51] [Server thread/INFO]: HorseNuggets walked into fire whilst fighting HyperSkys
[13:33:51] [Server thread/INFO]: HorseNuggets walked into fire whilst fighting HyperSkys
[13:33:51] [Server thread/INFO]: HorseNuggets walked into fire whilst fighting HyperSkys
[13:33:51] [Server thread/INFO]: HorseNuggets walked into fire whilst fighting HyperSkys
[13:33:52] [Server thread/INFO]: HorseNuggets walked into fire whilst fighting HyperSkys
[13:33:52] [Server thread/INFO]: HorseNuggets walked into fire whilst fighting HyperSkys
[13:34:02] [Server thread/INFO]: HorseNuggets walked into fire whilst fighting HyperSkys
[13:34:02] [Server thread/INFO]: HorseNuggets walked into fire whilst fighting HyperSkys

Additional Context

No response

Checklist

  • My issue does not match any existing issues on this repo

[Suggestion]: functional inventory for AI

Feature Request

Have a functioning inventory for the bot so it can use more weapons at its disposal like bows, golden apples, totem of undying, lava bucket, and choosing a good weapon for its Situation. This fall under my last post sorta about improving the ai but couldn’t fit it. It would also be awesome when the bot kills you it can pick up your stuff and steal your stuff and use it if your stuff is better the the bots stuff, Such as better armor and weapons.

Alternative Options

No response

Additional Context

No response

Checklist

  • My suggestion does not match any existing suggestions on this repo

[Bug]: cannot access net.minecraft.server.level.EntityPlayer

What happened?

Trying to build the plugin with Idea say this error

Plugin Version

3.1-BETA

Server Version

spigot-api-1.18.2-R0.1-20220312.205138-16-shaded

Relevant log output

java: cannot access net.minecraft.server.level.EntityPlayer
  class file for net.minecraft.server.level.EntityPlayer not found

Additional Context

Trying to build the error start from the Bot bot = Bot.createBot

Checklist

  • My issue does not match any existing issues on this repo

[Bug]: Unable Join while bot is online

What happened?

i create a bot,
and i rejoin server.
i get kicked.

Plugin Version

4.2.0-BETA

Server Version

Paper 1.19.3

Relevant log output

java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "trackedValues" is null
	at net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket.pack(ClientboundSetEntityDataPacket.java:17) ~[?:?]
	at net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket.write(ClientboundSetEntityDataPacket.java:38) ~[?:?]
	at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:41) ~[paper-1.19.3.jar:git-Paper-431]
	at net.minecraft.network.PacketEncoder.encode(PacketEncoder.java:14) ~[paper-1.19.3.jar:git-Paper-431]
	at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) ~[netty-codec-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:120) ~[netty-codec-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:966) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:934) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1020) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:311) ~[netty-transport-4.1.87.Final.jar:4.1.87.Final]
	at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:227) ~[ProtocolLib.jar:?]
	at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:233) ~[ProtocolLib.jar:?]
	at net.minecraft.network.Connection.doSendPacket(Connection.java:459) ~[?:?]
	at net.minecraft.network.Connection.lambda$sendPacket$11(Connection.java:433) ~[?:?]
	at com.comphenix.protocol.injector.netty.channel.NettyEventLoopProxy.lambda$proxyRunnable$2(NettyEventLoopProxy.java:48) ~[ProtocolLib.jar:?]
	at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:403) ~[netty-transport-classes-epoll-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.87.Final.jar:4.1.87.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.87.Final.jar:4.1.87.Final]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]

Additional Context

No response

Checklist

  • My issue does not match any existing issues on this repo

[Suggestion]: Add deep learning feature and improve the AI

Feature Request

Make the AI have the ability to learn tactics and big brain moves such as swimming in water, placing traps, juking the player, find more efficient and the best ways to kill you, and being able to attack you with more then just an axe or sword. for example the ai can shoot you with a bow, and place lava on you to smolder you to death. Also please Add a hide and seek feature where the bot doesn’t know where you are and tries to find you like smart patrol and once it sees you in its line of site it chases and try’s to kill you. Add a survival mode where the bot tries to craft and get its own food and materials to Esther hunt you or do whatever. You don’t need to add these features there only examples of the you can do if you add a deep learning feature in the plugin and improve the AI capabilities alot. I’ll pay good money for this project if you can try to make this a reality

Alternative Options

AI just needs massive improvements and adding the deep learning feature so you can teach the ai more stuff. Like for example I can’t teach the ai to find the most efficient path to hunt you because when I’m in a cave instead of following the cave down to you it just digs straight down. I’m like what the heck there’s a better path for you right next to me. Like I said the AI needs serious improvements and adding the deep learning algorithm will fix that.

Additional Context

No response

Checklist

  • My suggestion does not match any existing suggestions on this repo

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.