Code Monkey home page Code Monkey logo

vehicles's Introduction

Vehicles

Adds various vehicles to Minetest.

How to drive/pilot/etc.

Basic controls

All vehicles are steered by looking around. You can use the forward button(same as you would use for walking), to move the vehicles, but only some will be able to reverse. For example, cars can reverse but planes cannot.

Boosts

Some vehicles can have a small boost when the 'use/aux1' key is held. It will only last for a limited time and it will not recharge whilst the key is still held down.

Weapons

Vehicles can also use weapons, for example the jet and tank, which will fire a missile when 'sneak' is pressed. They require a missile to be in the drivers inventory to do this. It is possible to have a second weapon, fired with 'use/aux1', but currently only the assault suit does this. It can use both bullets and missiles. The gun turret uses bullets.

Flight/Jumping/Hovering

Some vehicles can fly, for example the jet. The jet will move upward when the driver looks up, or when the driver presses 'jump'. Using the jump key does not work very well at the moment. The plane is a bit differrent; It will hold it's height when 'jump' is pressed.

It is also possible for vehicles to jump or hover for a small amount of time. Currently only the Assault suit does this.

Boats and Watercrafts

The speed boat can be used on water, but if it is driven onto land it will stop completely. If you are lucky you can move back into water, but be careful because this does not always work.

The Lightcycles

The Lightcycles can place light barriers when 'sneak' is pressed. If the barrier from one type hits the other type, the vehicle will explode

Other

Vehicles will explode if they touch lava, so be careful. Don't drive cars or planes etc. into water! they will sink.

If you do get a vehicle in a tricky spot, you can punch it whilst driving and it will be dropped.

The API

vehicles.object_drive is the function used for the movement of vehicles. It should be used in this format:

vehicles.object_drive(entity, dtime, {
	-- table keys here
})

In the above case, entity is used in place of an entity or object. If the function was to be used inside on_step for an entity, 'entity' would be replaced with 'self.object'

The table should contain the relevant variables listed below. The function is written so that these are all somewhat optional.

  • speed: This defines the speed of the vehicle, if unset it will be '10'
  • fixed: Setting this to 'true' will disable movement from the vehicle
  • decell: This defines the decelleration of the vehicle. The default is 0
  • shoots: If true then the vehicle can shoot with 'sneak'(arrow must be defined, default is false)
  • arrow: This should be the entity name for the weapon fired (default is nil) (requires an item with the name arrow_name.."_item" to be in the drivers inventory)
  • reload_time: how long it takes before the weapon can be fired again (default is 1)
  • shoot_y: y offset of the weapon, default is 1.5
  • shoot_angle: This will make the weapon shoot at a differrent vertical angle (default is 0)
  • infinite_arrow: if this is set then the vehicle won't need an arrow item to be in the inventory
  • arrow2/reload_time2/shoots2/shoot_y2/infinite_arrow2: same as above but fired with 'use/aux1'
  • jump: can be either 'hover' or 'jump' (default is nil). Hover lasts longer than jump.
  • fly: if true then the vehicle will fly (default is false)
  • fly_mode: can be either 'hold' or 'rise' (default is 'hold'). hold will keep the vehicle in place when 'jump' is pressed, and 'rise' will cause the vehicle to rise when the same key is pressed.
  • rise_speed: dependant on fly_mode being set to 'rise'. Defines the speed at which the vehicle will rise. (default is 0.1)
  • gravity: the gravity acting on the vehicle. This should be positive. (default is 1)
  • boost: if set to 'true' then the vehicle can boost with 'use/aux1' (default is false)
  • boost_duration: dependant on 'boost'. Determines how long a boost will last (default is 5).
  • boost_charge: dependant on 'boost'. Determines how long it takes before boost can be used again (default is 4)
  • boost_effect: particle texture that will fly out from behind the vehicle whilst boosting (default is nil)
  • hover_speed: the speed at which the vehicle will hover if 'jump' is set to 'hover' (default is 1.5)
  • jump_speed: the speed at which the vehicle will jump if 'jump' is set to 'jump' (default is 5)
  • simple_vehicle: removes all functionality except basic movement, use to reduce lag. (not implemented yet), default is false
  • is_watercraft: if set to true then the vehicle won't be stopped by water. it will act like a boat unless swims is true. (default is false)
  • swims: will allow the vehicle to move underwater (not yet implemented) (default is false)
  • driving_sound: name of the sound file that will play when the vehicle is driving (default is nil)
  • sound_duration: !VERY IMPORTANT! if there is a driving sound then this should match it's duration. If this is not set then the sound could overlap and increase in volume (default is 5)
  • extra_yaw: use this if the model has incorrect rotation. It will rotate the model so it faces the right way whilst being driven (default is 0)
  • moving_anim/stand_anim/jump_anim/shoot_anim/shoot_anim2: animations for actions. Can be set individually. (default is nil)
  • place_node: name of the node that is placed by the vehicle (default is nil)
  • place_chance: nodes are placed when a random number between place_chance and 1 is equal to 1 (default is 1)
  • place_trigger: if true the vehicle will place the node defined by place_node when 'sneak' is pressed. (default is false)
  • death_node: name of the node that will make the vehicle explode, default is nil
  • destroy_node: name of the node that is destroyed if it toughes the vehicle, default is nil

vehicles's People

Contributors

d00med avatar emojigit avatar ifrfsx avatar jat15 avatar ltworf avatar mnh48 avatar monte48 avatar poikilos avatar rollerozxa avatar thomas--s avatar zaoqi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

vehicles's Issues

expected table got boolean

2018-06-18 13:20:21: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'vehicles' in callback luaentity_Rightclick(): Invalid position (expected table got boolean). 2018-06-18 13:20:21: ERROR[Main]: stack traceback: 2018-06-18 13:20:21: ERROR[Main]: [C]: in function 'set_attach' 2018-06-18 13:20:21: ERROR[Main]: C:\minetest-0.4.17\bin\..\mods\vehicles\init.lua:530: in function <C:\minetest-0.4.17\bin\..\mods\vehicles\init.lua:526> 2018-06-18 13:20:21: ERROR[Main]: stack traceback: 2018-06-18 13:20:21: ERROR[Main]: [C]: in function 'set_attach' 2018-06-18 13:20:21: ERROR[Main]: C:\minetest-0.4.17\bin\..\mods\vehicles\init.lua:530: in function <C:\minetest-0.4.17\bin\..\mods\vehicles\init.lua:526>

Getting this randomly, havnt yet worked it out what causes it but it takes the server out.

Edit:Its whe a passenger gets in the jeep.

Can put blocks or player on Ute

Suggest Ute can handle player or nodes on its back like this

If ute goes forward the players or nodes continue on its back

screenshot_20200721_083522

Current status of this mod

@D00Med (sorry for the ping)
This mod is very prominent on the contentdb (https://content.minetest.net/packages/D00Med/vehicles/) and has over 46k downloads currently.

The PR's are currently piling up and some contain simple fixes for very obvious bugs.
If you don't have the time to maintain this (it happens, that's not a bad thing πŸ˜„) consider nominating a few maintainers.
@Emojigit comes to mind, i think they use your mod in a live server too.
I could help out too but i can't promise anything...

(this isn't meant to be negative at all, i just don't want to see this mod die)

server crash: bad argument #1 to 'punch' (userdata expected, got nil)

2021-05-12 13:28:29: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'vehicles' in callback luaentity_Step(): /opt/minetest/bin/../mods/vehicles/init.lua:204: bad argument #1 to 'punch' (userdata expected, got nil)
2021-05-12 13:28:29: ERROR[Main]: stack traceback:
2021-05-12 13:28:29: ERROR[Main]: [C]: in function 'punch'
2021-05-12 13:28:29: ERROR[Main]: /opt/minetest/bin/../mods/vehicles/init.lua:204: in function </opt/minetest/bin/../mods/vehicles/init.lua:197>

Multiplayer bug

Hi, I don't know if this is normal but I've been playing multiplayer for Lego city undercover Minetest (a game I'm currently doing, by the way a small army of new vehicles would be cool) but I've noticed that in multiplayer when 1 person is driving in a vehicle and a 2nd person is driving the vehicles become very slow, (basically I wanted to race but we were very slow when we were driving at the same time) is that normal?

server crash with wings

ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'vehicles' in callback item_OnUse(): /home/user/.minetest/mods/vehicles/api.lua:64: attempt to index local 'entity' (a nil value)
ERROR[Main]: stack traceback:
ERROR[Main]:    /home/user/.minetest/mods/vehicles/api.lua:64: in function 'object_detach'
ERROR[Main]:    /home/user/.minetest/mods/vehicles/init.lua:1864: in function </home/user/.minetest/mods/vehicles/init.lua:1854>

STR:

  • download vehicles from contentdb
  • create a new world
  • enable vehicles for the new world
  • start world
  • /grantme give
  • /giveme vehicles:wings
  • select wings
  • left-click (start flying)
  • left-click again

Minetest: 5.2.0 (fedora)
Vehicles: latest from contentDB

Cannot find launcher/player of missile crashes server

Under certain circumstances the launcher of a missile cannot be found (maybe if a player launches a missile and then disconnects, I'm not exactly sure) and it starts crashing as soon as someone connects to the server with:

vehicles/init.lua:44: attempt to index local 'player' (a nil value)

I have a fix, not sure if it's a good one, but I wanted to log an issue first so there's a place to document discussions around this issue and my possible fix.

Vehicle spawner items are mining tools

It appears that all vehicle spawners (e.g. vehicles:ambulance_spawners) can be used as mining tools and even as weapon.

For some reason, an ambulance spawner is able to dig snappy nodes faster than the hand.

This doesn't seem right. Can you please check your item definitions?

I noticed this while developing my doc_items mod which shows digging times for all tools in latest development version.

vehicle tuning

I know this is probably not possible but it would be cool to have

Replace default boat

I'd like to find a way to replace all minetest_game boats with vechicles mod boats. Already placed ones and recipe wise. Is there a way of doing this?

Mod stops Minetest

Hi, I updated TNT and others dependents mods, but doen't work. Now don't open Minetest.

2016-10-25 22:56:33: WARNING[Main]: Mod name conflict detected: "default"
2016-10-25 22:56:33: WARNING[Main]: Will not load: /usr/share/games/minetest/games/minetest_game/mods/default
2016-10-25 22:56:33: WARNING[Main]: Overridden by: /home/luiz/.minetest/mods/default
2016-10-25 22:56:33: WARNING[Main]: Mod name conflict detected: "tnt"
2016-10-25 22:56:33: WARNING[Main]: Will not load: /usr/share/games/minetest/games/minetest_game/mods/tnt
2016-10-25 22:56:33: WARNING[Main]: Overridden by: /home/luiz/.minetest/mods/tnt
2016-10-25 22:56:33: WARNING[Main]: NodeDefManager: Ignoring CONTENT_IGNORE redefinition
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2016-10-25 22:56:33: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2016-10-25 22:56:33: ACTION[Main]:
2016-10-25 22:56:33: ACTION[Main]:
2016-10-25 22:56:33: ACTION[Main]: Creative mode is enabled.
2016-10-25 22:56:33: ACTION[Main]: Damage is disabled.
2016-10-25 22:56:33: ACTION[Main]: PvP is enabled.
2016-10-25 22:56:33: ACTION[Main]:
2016-10-25 22:56:33: ACTION[Main]:
2016-10-25 22:56:33: ERROR[Main]: ModError: Failed to load and run script from /usr/share/games/minetest/games/minetest_game/mods/farming/init.lua:
2016-10-25 22:56:33: ERROR[Main]: ...ames/minetest/games/minetest_game/mods/farming/nodes.lua:19: Attempt to override non-existent item default:dirt_with_dry_grass
2016-10-25 22:56:33: ERROR[Main]: stack traceback:
2016-10-25 22:56:33: ERROR[Main]: [C]: in function 'error'
2016-10-25 22:56:33: ERROR[Main]: /usr/share/games/minetest/builtin/game/register.lua:338: in function 'override_item'
2016-10-25 22:56:33: ERROR[Main]: ...ames/minetest/games/minetest_game/mods/farming/nodes.lua:19: in main chunk
2016-10-25 22:56:33: ERROR[Main]: [C]: in function 'dofile'
2016-10-25 22:56:33: ERROR[Main]: ...games/minetest/games/minetest_game/mods/farming/init.lua:7: in main chunk

crashing on clicking on a vehicle, where a player is inside

My server is crashing, by doing right click on a vehicle (only if there is somebody in there)

ServerError: AsyncErr: Lua: Runtime error from mod 'vehicles' in callback luaentity_run_simple_callback(): /home/debian/minetest/bin/../mods/vehicles/init.lua:524: bad argument #2 to 'set_attach' (string expected, got userdata)

Editable models

Hello,

could you please share the original models? I can't manage to properly import b3d animations into Blender.

Thanks,
Jakub VanΔ›k

vehicles seem slower than they were

Just noticed that the vehicles seem quite a bit slower than they were before I combined the driving functions. I think it might be because the variables are defined every step

Error in planes

Hi, when I can try right click on the fly I found this error:

2016-10-25 11:43:15: ACTION[Server]: luizsabino right-clicks object 7: LuaEntitySAO at (63,2.4,-121)
2016-10-25 11:43:15: WARNING[Server]: Undeclared global variable "nilthen" accessed at /home/luiz/.minetest/mods/vehicles/api.lua:390
2016-10-25 11:43:15: WARNING[Server]: Undeclared global variable "set_animation" accessed at /home/luiz/.minetest/mods/vehicles/api.lua:391
2016-10-25 11:43:15: ERROR[Main]: ServerError: Lua: Runtime error from mod 'vehicles' in callback luaentity_Step(): /home/luiz/.minetest/mods/vehicles/api.lua:391: attempt to call global 'set_animation' (a nil value)
2016-10-25 11:43:15: ERROR[Main]: stack traceback:
2016-10-25 11:43:15: ERROR[Main]: /home/luiz/.minetest/mods/vehicles/api.lua:391: in function 'object_fly'
2016-10-25 11:43:15: ERROR[Main]: /home/luiz/.minetest/mods/vehicles/init.lua:965: in function </home/luiz/.minetest/mods/vehicles/init.lua:963>
2016-10-25 11:43:15: ACTION[Server]: luizsabino leaves game. List of players:

wings trouble

The wings are far from person model. Also causes black screen after grounding and game crashin`

Maintenance tasks

For anyone who would like to work on this mod, there are a number of changes which I think are a priority.
These are things I planned or was waiting for engine features in order to do.

  • Split the drive function. One big function is not efficient. Better to have separate functions for flying, swimming, driving on land, etc. and maybe even for shooting, but call it inside each driving type. That way you'd only have to update the shooting function code once every time you wanted to make a change.
  • Full rotation of flying vehicles. set_rotation(rot) should now make it possible to change the roll in addition to pitch and yaw. I don't know if the api allows for custom keyboard input but it'd be neat if you could use "a" and "d" for roll.
  • Pitch rotation of ground vehicles based on y velocity or change in y position. I don't think I ever added this?

Feel free to comment with further tasks.

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.