Giter Site home page Giter Site logo

alter's People

Contributors

aescoding avatar barrescue avatar clouds3c avatar dill-lan avatar displee avatar ffritzl avatar kevinsenez avatar mark7625 avatar matthewbishop avatar mooneykohner avatar pitchblac23 avatar seqcoding avatar zeruth 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

alter's Issues

205# Bugs

  • Graphic's being played from wrong tiles.

  • Object aren't getting removed when needed.

  • When item is dropped, it will do LOC_ADD on a random tiles.

  • Public Chat crashing

  • Underlay interface id is wrong [The one that hides entire gameframe buttons]

  • Inventory IF_Button packets aren't properly handled.

Deposit[205#]-Error Log

Logger-message: [Command: cmd=obank, args=[]] , client: [Client{login_username=145, username=145, channel=[id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594]}]
[21:43:46.969 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 201.
[21:43:47.289 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 246.
[21:43:47.970 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 19.
[21:43:48.309 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 253.
[21:43:48.791 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 136.
[21:43:49.189 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 76.
[21:43:49.651 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 163.
[21:43:50.069 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 134.
[21:43:50.350 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 180.
[21:43:50.930 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 245.
Logger-message: [Update appearance: gender=MALE, appearance=[12, 3, 56, 31, 104, 34, 37], colors=[187, 22, 178, 23, 165]] , client: [Client{login_username=145, username=145, channel=[id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594]}]
[21:43:51.231 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 6.
[21:43:51.510 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 252.
Logger-message: [Update appearance: gender=MALE, appearance=[10, 3, 136, 127, 130, 38, 50], colors=[39, 121, 8, 33, 230]] , client: [Client{login_username=145, username=145, channel=[id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594]}]
[21:43:51.910 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 176.
[21:43:52.931 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 244.
[21:43:53.972 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 236.
[21:43:54.131 ERROR] GameService | Error with task MessageHandlerTask.
java.lang.ArrayIndexOutOfBoundsException: Index 10284 out of bounds for length 2048
at gg.rsmod.game.model.PawnList.get(PawnList.kt:24) ~[main/:?]
at gg.rsmod.game.message.handler.OpPlayer6Handler.handle(OpPlayer6Handler.kt:28) ~[main/:?]
at gg.rsmod.game.message.handler.OpPlayer6Handler.handle(OpPlayer6Handler.kt:15) ~[main/:?]
at gg.rsmod.game.system.GameSystem.handleMessages(GameSystem.kt:57) ~[main/:?]
at gg.rsmod.game.model.entity.Client.handleMessages(Client.kt:93) ~[main/:?]
at gg.rsmod.game.task.MessageHandlerTask$execute$1.invoke(MessageHandlerTask.kt:17) ~[main/:?]
at gg.rsmod.game.task.MessageHandlerTask$execute$1.invoke(MessageHandlerTask.kt:12) ~[main/:?]
at gg.rsmod.game.model.PawnList.forEach(PawnList.kt:36) ~[main/:?]
at gg.rsmod.game.task.MessageHandlerTask.execute(MessageHandlerTask.kt:15) ~[main/:?]
at gg.rsmod.game.service.GameService.cycle(GameService.kt:227) [main/:?]
at gg.rsmod.game.service.GameService.access$cycle(GameService.kt:33) [main/:?]
at gg.rsmod.game.service.GameService$init$1.invoke(GameService.kt:129) [main/:?]
at gg.rsmod.game.service.GameService$init$1.invoke(GameService.kt:33) [main/:?]
at gg.rsmod.game.service.GameService$sam$java_lang_Runnable$0.run(GameService.kt) [main/:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
at java.lang.Thread.run(Thread.java:832) [?:?]
[21:43:54.250 WARN ] GamePacketDecoder | Channel [id: 0x6efc305c, /127.0.0.1:49320 => /127.0.0.1:43594] sent message with no valid metadata: 135.

netty packet queue not processed unless an action happens

It seems the packet queue doesn't process its contents when the character isnt moving around/interacting with stuff. Takes a little bit to fill up. When you click around, the queue deflates which seems to exceed a tick worths of processing and the world kinda 'jumps' i.e. npcs teleport a tile.

[ ERROR] [ 18:26:16.970 ] [ GameHandler          ] | Error reading message GamePacket{opcode=2, type=FIXED, length=0} from channel [id: 0x538099d7, /127.0.0.1:52514 => /127.0.0.1:43594].
java.lang.IllegalStateException: Queue full
	at java.util.AbstractQueue.add(AbstractQueue.java:98) ~[?:?]
	at java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:329) ~[?:?]
	at org.alter.game.system.GameSystem.receiveMessage(GameSystem.kt:40) ~[main/:?]
	at org.alter.game.protocol.GameHandler.channelRead(GameHandler.kt:37) [main/:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:276) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:263) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.handler.traffic.AbstractTrafficShapingHandler.channelRead(AbstractTrafficShapingHandler.java:513) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.handler.traffic.AbstractTrafficShapingHandler.channelRead(AbstractTrafficShapingHandler.java:513) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:840) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:430) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:384) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at java.lang.Thread.run(Thread.java:833) [?:?]
[ ERROR] [ 18:26:20.571 ] [ GameHandler          ] | Error reading message GamePacket{opcode=2, type=FIXED, length=0} from channel [id: 0x538099d7, /127.0.0.1:52514 => /127.0.0.1:43594].
java.lang.IllegalStateException: Queue full
	at java.util.AbstractQueue.add(AbstractQueue.java:98) ~[?:?]
	at java.util.concurrent.ArrayBlockingQueue.add(ArrayBlockingQueue.java:329) ~[?:?]
	at org.alter.game.system.GameSystem.receiveMessage(GameSystem.kt:40) ~[main/:?]
	at org.alter.game.protocol.GameHandler.channelRead(GameHandler.kt:37) [main/:?]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:276) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:263) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.handler.traffic.AbstractTrafficShapingHandler.channelRead(AbstractTrafficShapingHandler.java:513) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.handler.traffic.AbstractTrafficShapingHandler.channelRead(AbstractTrafficShapingHandler.java:513) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:307) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:293) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:840) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:430) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:384) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) [netty-all-4.0.34.Final.jar:4.0.34.Final]
	at java.lang.Thread.run(Thread.java:833) [?:?]

Flag tiles in different areas

unknown
2022-10-02_08-52-21

Needs flags not to walk on log at agility course and also walking tiles are blocked in barrows areas. might be others like falador castle and few others ive noticed that walk around a area just to open a door

Friendchat is not working

Friendchat is not working right.

Server output:
[ INFO ] [ 17:09:12.331 ] [ PrivateSenderHandler ] | Sender: Eikenboom - Target: Supertje - Message: [5] hallo [ INFO ] [ 17:09:12.331 ] [ PrivateSenderHandler ] | Attempting to send packet to target

Supertje recieves: Th'taa nlh!' niiktte 'nsil'

Shops

It should be like:
image

Now it's :

image

When buying out a non-temp item it's totally removed from the store and re-added as restock

TODO List

  • Logout is fucked
  • Items aren't added onto Player Appearance
  • Map Flag Tiles
  • Changing Display modes r fucked
  • Npc does not get removed when it's dead + exception about transforming it to -1
  • No npc hp bars
  • No npc anims
  • Projectiles are also fucked up
  • Bank does not work as intended
  • Some interface options need to be updated as before we had all (options -1)
  • Still using old skill interface
  • Remove/Update Bond interface
  • When client disconnects it does not flush the player
  • Create separate class for PlayerInfoUpdating
  • Dropped items do not despawn.
  • Bank Interface:
    • Tab to Tab should swap
    • When depositing inventory and bank is empty, it skips one slot
    • When depositing inventory on current tab thats not default, it skips the insertion but increases the tabs varbit size.
    • Missing buttons/Gear interface
  • Char Summary tab does not open it's interfaces
  • Clan-channel tab does not open it's interfaces
  • Friends list not implemented
  • No unequip sounds
  • Chat box interface selectors need to be reconfigured
  • Run toggle seems to be busted
  • Xp drop interface as well as main game child is busted
  • Items kept on death interface busted
  • Tiles with dynamic objects are also busted.
  • Npc drops are also busted
  • Price Check guide interface busted <-- If you hit ESC it won't remove the items from container and leave it there.
  • Equipment Stat interface busted.
  • Spawning AreaSound will crash the client.

Settings tab

All settings interface -> Search Tab -> Glitches out the chatbox textfield

Looting Bag

Can't deposit items from Looting bag,


[ ERROR] [ 16:47:19.553 ] [ GameService          ] | Error with task MessageHandlerTask.
java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 28
	at gg.rsmod.game.model.container.ItemContainer.get(ItemContainer.kt:597) ~[main/:?]
	at gg.rsmod.plugins.content.items.others.lootingbag.Looting_bag_plugin.bank(looting_bag.plugin.kts:173) ~[plugins-0.0.4.jar:?]
	at gg.rsmod.plugins.content.items.others.lootingbag.Looting_bag_plugin$7.invoke(looting_bag.plugin.kts:101) ~[plugins-0.0.4.jar:?]
	at gg.rsmod.plugins.content.items.others.lootingbag.Looting_bag_plugin$7.invoke(looting_bag.plugin.kts:5) ~[plugins-0.0.4.jar:?]
	at gg.rsmod.game.model.entity.Pawn.executePlugin(Pawn.kt:606) ~[main/:?]
	at gg.rsmod.game.plugin.PluginRepository.executeButton(PluginRepository.kt:906) ~[main/:?]
	at gg.rsmod.game.message.handler.IfButton1Handler.handle(IfButton1Handler.kt:34) ~[main/:?]
	at gg.rsmod.game.message.handler.IfButton1Handler.handle(IfButton1Handler.kt:19) ~[main/:?]
	at gg.rsmod.game.system.GameSystem.handleMessages(GameSystem.kt:57) ~[main/:?]
	at gg.rsmod.game.model.entity.Client.handleMessages(Client.kt:93) ~[main/:?]
	at gg.rsmod.game.task.MessageHandlerTask$execute$1.invoke(MessageHandlerTask.kt:17) ~[main/:?]
	at gg.rsmod.game.task.MessageHandlerTask$execute$1.invoke(MessageHandlerTask.kt:12) ~[main/:?]
	at gg.rsmod.game.model.PawnList.forEach(PawnList.kt:36) ~[main/:?]
	at gg.rsmod.game.task.MessageHandlerTask.execute(MessageHandlerTask.kt:15) ~[main/:?]
	at gg.rsmod.game.service.GameService.cycle(GameService.kt:227) [main/:?]
	at gg.rsmod.game.service.GameService.access$cycle(GameService.kt:33) [main/:?]
	at gg.rsmod.game.service.GameService$init$1.invoke(GameService.kt:129) [main/:?]
	at gg.rsmod.game.service.GameService$init$1.invoke(GameService.kt:33) [main/:?]
	at gg.rsmod.game.service.GameService$sam$java_lang_Runnable$0.run(GameService.kt) [main/:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
	at java.lang.Thread.run(Thread.java:832) [?:?]

Bugs/Todo

Found bugs:

  • Public Chat mask, Sending public message crashes the client,
  • OpenURL packet, Sending this packet will crash the client (payload),
  • UpdateStats packet, Sends to much bytes and so when [Player] logins ChatBox hidde's it's username until first interaction.
  • Bank set X quantity button, and worn items

###Todo:
Dump and set NPC combat defs,

TopInterfaces :

  • Character Summary,
  • IKOD [Items Kept on Death],
  • Settings Tab / Interface,
  • Arceuus SpellBook,
  • Friend and Clan Chat interfaces w their system,
  • Emotes tab: Missing -> Explore / Relic Unlocked, and need to replicate gfx/anim of OSRS.
  • Music Tab,

Region music/song,
Spec attack [Weapon] regeneration,
Drop System,
Special Weapon functionality ex: Serp helm gives anti poison,
Potions,
Skilling [Last || Later],
Reach npc's trough objects,

Levelup

When you levelup in a skill, you will Disconnect from the game. After logging in the skill is increased. Maybe a updateblock?

Ground item pickup

when picking up items it'll pickup from a tile off and not walk on the tile to pickup

on_item_on_npc not working

Tried using on_item_on_npc with the Alter client https://AlterRSPS/Runelite and it looks like the server does not receive the request or the client doesn't respond.

Unsure how to actually debug further.

The method on_item_on_object works as intended. My next approach is going to be debugging this to see how it works, but asking here for some insight.

Bugs

When player dies next to the spawn spot -> He just walks back to the spawn spot

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.