Giter VIP home page Giter VIP logo

react-grid-gallery's Introduction

React Grid Gallery

Justified image gallery component for React inspired by Google Photos.

๐ŸŽ‰ v1.0.0 is out!

There are breaking changes with v0.5.x, check out the migration guide to learn more. Documentation for v0.5.x is here.

Live Demo & Examples

https://benhowell.github.io/react-grid-gallery/

Installation

Using npm:

npm install --save react-grid-gallery

Quick Start

import { Gallery } from "react-grid-gallery";

const images = [
   {
      src: "https://c2.staticflickr.com/9/8817/28973449265_07e3aa5d2e_b.jpg",
      width: 320,
      height: 174,
      isSelected: true,
      caption: "After Rain (Jeshu John - designerspics.com)",
   },
   {
      src: "https://c2.staticflickr.com/9/8356/28897120681_3b2c0f43e0_b.jpg",
      width: 320,
      height: 212,
      tags: [
         { value: "Ocean", title: "Ocean" },
         { value: "People", title: "People" },
      ],
      alt: "Boats (Jeshu John - designerspics.com)",
   },
   {
      src: "https://c4.staticflickr.com/9/8887/28897124891_98c4fdd82b_b.jpg",
      width: 320,
      height: 212,
   },
];

<Gallery images={images} />

Image Options

Property Type Description
src string Required. A string referring to any valid image resource (file, url, etc).
width number Required. Width of the image.
height number Required. Height of the image.
nano string:base64 Optional. Thumbnail Base64 image will be injected to background under the main image. This provides a base64, 4x4 generated image whilst the image is being loaded.
alt string Optional. Image alt attribute.
tags array Optional. An array of objects containing tag attributes (value, title and key if value is element). e.g. {value: "foo", title: "bar"} or {value: <a href={tag.url}>{tag.name}</a>, title: tag.title, key: tag.key}
isSelected bool Optional. The selected state of the image.
caption string | ReactNode Optional. Image caption.
customOverlay element Optional. A custom element to be rendered as a thumbnail overlay on hover.
thumbnailCaption string | ReactNode Optional. A thumbnail caption shown below thumbnail.
orientation number Optional. Orientation of the image. Many newer digital cameras (both dSLR and Point & Shoot digicams) have a built-in orientation sensor. The output of this sensor is used to set the EXIF orientation flag in the image file's metatdata to reflect the positioning of the camera with respect to the ground (See EXIF Orientation Page for more info).

Gallery Options

Property Type Description
images array Required. An array of objects containing image properties (see Image Options above).
id string Optional, default ReactGridGallery. id attribute for <Gallery> tag. This prop may be useful for those who wish to discriminate between multiple galleries.
enableImageSelection bool Optional, default true. Allow images to be selectable. Setting this option to false whilst supplying images with isSelected: true will result in those images being permanently selected.
onSelect func Optional. Function to execute when an image is selected. Optional args: index (index of selected image in images array), image (the selected image), event. This function is only executable when enableImageSelection: true.
rowHeight number Optional, default 180. The height of each row in the gallery.
maxRows number Optional. The maximum number of rows to show in the gallery.
margin number Optional, default 2. The margin around each image in the gallery.
onClick func Optional. Function to execute when gallery image clicked. Optional args: index (index of selected image in images array), image (the clicked image), event (the click event).
tagStyle func | CSSProperties Optional. Style or function that returns style to pass to tag elements. Optional args: item (the image item in images). Overrides internal tag style.
tileViewportStyle func | CSSProperties Optional. Style or function to style the image tile viewport. Optional args: item (the image item in images). Overrides internal tileViewportStyle function.
thumbnailStyle func | CSSProperties Optional. Style or function to style the image thumbnail. Optional args: item (the image item in images). Overrides internal thumbnailStyle function.
thumbnailImageComponent React component Optional. Substitute in a React component that would get passed imageProps (the props that would have been passed to the <img> tag) and item (the original item in images) to be used to render thumbnails; useful for lazy loading.
defaultContainerWidth number Optional. Set default width for the container. This option is useful during server-side rendering when we want to generate an initial markup before we can detect the actual container width.

General Notes

  • react-grid-gallery is built for modern browsers and therefore IE support is limited to IE 11 and newer.

  • As the inspiration for this component comes from Google Photos, very small thumbnails may not be the most aesthetically pleasing due to the border size applied when selected. A sensible rowHeight default of 180px has been chosen, but rowHeights down to 100px are still reasonable.

  • Gallery width is determined by the containing element. Therefore your containing element must have a width (%, em, px, whatever) before the gallery is loaded!

  • If you don't know your width and height values, you can find these out using any number of javascript hacks, bearing in mind the load penalty associated with these methods.

Contributing

All contributions to react-grid-gallery are very welcome. Feature requests, issue reports and pull requests are greatly appreciated. Please follow the contribution guidelines

License

React Grid Gallery is free to use for personal and commercial projects under the MIT License. Attribution is not required, but appreciated.

Acknowledgements

react-grid-gallery's People

Contributors

approximator avatar benhowell avatar cust0dian avatar danalloway avatar dependabot[bot] avatar icodeforlove avatar igor-palaguta avatar itoldya avatar jakub-tucek avatar jimishf avatar kym6464 avatar lryta avatar mis94 avatar pxpeterxu avatar scottmrafferty avatar szromek avatar valyouw 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

react-grid-gallery's Issues

Feature request: Gesture controls on mobile

It would be nice to have gesture controls, such as pinch-zooming and swiping left and right, within the lightbox on mobile devices.

As an example, PhotoSwipe http://photoswipe.com/ has these features on a mobile device.

Bonus points if the gestures work on a MacBook with a trackpad as well. :)

React Deprecations in react-grid-gallery

Using the latest 0.3.3 version of react-grid-gallery:

warning.js?8a56:36 Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead.
warning.js?8a56:36 Warning: A Component: React.createClass is deprecated and will be removed in version 16. Use plain JavaScript classes instead. If you're not yet ready to migrate, create-react-class is available on npm as a drop-in replacement.

I believe these issues might give you some guidance in removing the PropTypes warning:
react-toolbox/react-toolbox#1410
react-toolbox/react-toolbox#1413

And this may help with the deprecated React.createClass:
reactjs/react-modal#367

Call onClickThumbnail() after custom action

Hi again,

I'd like to hook into the onClickThumbnail method but still run the default after - is that possible?

Something like this:

<Gallery onClickThumbnail={(index) => this.incViewCount(index)} />

incViewCount(index) {
   // increase view count in backend

   // open lightbox
}

Any help is greatly appreciated!
David

context link per image

Thank you for sharing react-grid-library. It's really useful!

Is there a way to include a link (or html) that is rendered when the image is open ?

One idea would be to treat the caption as html and then I can link there to the image license or some additional page.

auto size of thumbs

I was wondering if there is a possibility that the thumb images width and height are automatically sized from the image data. I want to avoid to define every width and height of every thumb.

Close button off screen on iPad

When an image is displayed in portrait orientation on an iPad in landscape orientation, the close button is off the screen. This means the lightbox cannot be closed when a portrait image is displayed, perhaps being impossible if the gallery only has portrait images and backdropClosesModal is set to false.

Local images

i want to show images from local sources.how can i handle with this.

Selection not working on mobile devices

On a mobile device, tapping the image shows the checkmark overlay to select the thumbnail. However, if an image is tapped and the lightbox displays then the checkmark will never display again and it becomes impossible to select any images in the gallery.

Ideally, one wouldn't need to tap the image twice to select it in any case. Perhaps, an option to always show the checkmark overlay (or just on mobile) is needed?

Variable rowHeight for the whole gallery to be justified on both left and right?

Right now it seems we are passing in a static number for the height of the row, but if there are images passed into the gallery with drastically different height and width, the row height is limited so the gallery rows are not completely filled from left to right. Note that I will have no control over the order of the images being passed in.
screenshot from 2016-10-06 12-10-16

...need a little more details...

First off, thanks so much for sharing react-grid-gallery. It's working quite nicely.

A few things have me wandering to and fro...

  1. shuffleArray - how and where is this defined. When I remove it the gallery works fine; but the shuffle would be sweet. note - I installed 'react-shuffle'; was not the solution.

  2. srcset - I'm currently trying a " lightboxImage:{src: '', srcset:[ ] " approach. I can't get it working.
    Please, could you give an example of the necessary setup for srcsets to work in react-grid-gallery.

Thanks again!

Feature request: View larger image button

Sorry for so many feature requests but this is almost perfect for my needs. Thanks for your efforts.

In the app I'm currently building, there are two primary use cases for which I would like to use this gallery:

  • Viewing images. The user is primarily viewing images and is only making selections as a secondary concern.
  • Selecting images. The user is primarily selecting images and is only viewing them as a secondary concern.

The first use case is handled very well.

However, the second use case is not handled as well. Ideally, in this case, tapping anywhere on the image would select it instead of viewing the lightbox. I could use onClickThumbnail to do this but then there would no way for the user to view the larger image in the lightbox unless I confuse them by doing it with onSelectImage.

I'm proposing a "View Larger Image" button for the upper-right corner that works similarly to the selection button but launches the lightbox with the image instead. Of course, this could be enabled or disabled in the same way as the selection button.

A more thorough implementation would be to give each of the four corners it's own target. Each could be used as the selection button or for other events like viewing the larger image in the lightbox so the designer has the option to put select in whatever corner they like, for example.

If each of these targets had custom SVG icons and styling (e.g. deselected, hover, active, and selected), they could be used for any number of user-defined functions, such as:

  • Favorite Move the image to the beginning of the array with a red heart when selected.
  • Trash A trash can that removes the image from the array.
  • Delete A slashed-circle icon that deletes the image when viewing trashed images.
  • Move Left or Move Right Arrows that moves the image left or right in the image array.
  • Mirror Image Mirrors the image.
  • Rotate Image Rotates the image.

Of course, the call back would be responsible for doing the actual processing and communicating the changes to the gallery and server.

To allow designers to have greater options, instead of just the four corners, the target might also include the midpoint of each edge (for a total of eight targets) such as: (The midpoint left and right seem ideal for the move left and move right targets, for example.)

+โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“+
| O        O        O |
|                     |
| O                 O |
|                     |
| O        O        O |
+โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“+

Finally, if instead of sending individual buttons to each target, you could set an array of buttons for each target, more complex things could be done. For example placing rotate clockwise and rotate counterclockwise buttons on the bottom left side, flip horizontal and flip vertical on the bottom right side, and three other options in the bottom center, like:

+โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“+
|                     |
|                     |
|                     |
|                     |
| OO      OOO      OO |
+โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“+

If arrays of buttons are created, then designers might like to have the center of the image for buttons as well, like:

+โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“+
|                     |
|                     |
|         OOO         |
|                     |
|                     |
+โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“โ€“+

Support Videos?

Hi there,

is there any plans to support video in this gallery?

Thanks

David

RangeError: Maximum Call Stack size Exceeded

When updating images from state to Gallery component, i am getting a console error of RangeError: Maximum call stack size exceeded. Images are rendered correctly but getting the following error.

Uncaught RangeError: Maximum call stack size exceeded
at trackProperties (trackForMutations.js?7bd4:16)
at trackProperties (trackForMutations.js?7bd4:32)
at trackProperties (trackForMutations.js?7bd4:32)
at trackProperties (trackForMutations.js?7bd4:32)
at trackProperties (trackForMutations.js?7bd4:32)
at trackProperties (trackForMutations.js?7bd4:32)
at trackProperties (trackForMutations.js?7bd4:32)
at trackProperties (trackForMutations.js?7bd4:32)
at trackProperties (trackForMutations.js?7bd4:32)
at trackProperties (trackForMutations.js?7bd4:32)

Max number of rows?

Is there a way to or has anyone been able to set a max number of rows? I'd like to only show two rows regardless how many images I have.

Lazy Loading Images

Hi is it possible to load actual images lazily when they're visible in the viewport?

Thanks.

Dependency Issues using this with react-native

Hey there, I'm trying to work on including this into my project, but using the simple example I get some serious dependency issues that I can't quite work out.

When I first install this lib, it complains about being unable to resolve module 'react-dom'. All well and good, I'll install react-dom at the wanted version, but then 'react-dom' starts throwing errors about not being about to resolve module 'react/lib/React' -- I'm thinking something is fundamentally wrong.

img_0492
img_0493

Have you ran into anything like this? Would really love to use this library.

overflow-y hidden to the body

Hi,

Thanks for the awesome library!

I'm trying to implement the gird gallery so that when I click on a button, the lightbox will be displayed immediately isOpen={true}

I noticed the lightbox adds css rule: overflow-y:hidden to the body tag, which is fine except it's not removing that css rule when I close the lightbox (press esc) causing the page to freeze (no scroll)!

Any ideas/suggestions on how to workaround this?

Update Lib Files

I may be doing things wrong, but could you run node gulpfile.js and commit?

The constructors for Gallery.js and CheckButton.js break on IE 10 and lower. But running node gulpfile to update the lib files and then installing locally fixes my app. thanks

Copying React Photo Gallery component

It looks like you've copied my entire codebase with little changes that could have been pull requested and are trying to pass off this component as yours. You need to take this repo down.

Allow click on overlay

It would be nice to allow to click on overlay, I've seen in your code the pointer events are all set to none. I tried to add onClick to my overlay but they get overwritten by the parent div in your source code.

Its possible for someone to add buttons onHover which do different functions to the image, it would be really nice if they are clickable.

Thanks for a good gallery.

Component renders nothing when used inside a modal

Hi,

I've included this component inside a modal. Everything else mounts properly in my modal except for this component. The only way I can force it to render is by resizing the window or forcing a state change in the Chrome inspector. Here's a quick glance what the state of the component looks like by default after the page has loaded.

screen shot 2017-07-26 at 1 46 44 am

Any ideas to work around this?

Show Thumb Caption Only in Modal?

Is it possible not to show the caption below the thumbs but only show a caption below the big image when they open them in the modal?

After re-render Gallery won't show new images until resize

If I re-render a gallery with new image props, it doesn't show new images until I resize the window. I found that in componentDidUpdate it will not update the state unless the client has been resized - I'd recommend moving the thumbnail state update to its own function instead of onResize.

I'm not quite sure why componentDidUpdate only responds to resize, or I'd submit a PR.

https://github.com/benhowell/react-grid-gallery/blob/master/src/Gallery.js#L44

Component doesn't work properly when inside a modal

Similar to #37 except I do see the thumbnails the first time the modal opens. However, when new data becomes available and the props are updated, when the modal is reopened there are zero thumbnails, not even the ones that were previously displayed.

I have a put together a minimal app to demonstrate the issue here. Initially 2 images are available - click 'Create gallery' to see them. Then click 'Trigger new image data' to simulate a new image becoming available and then reopen the modal.

Not working with Preact

Hello everybody,

I'm getting this error in a project with Preact activated.

screen shot 2017-11-02 at 12 39 12

Does someone have any clue about this?

Thanks,

Customizing the selected state UI

Are there options to pass in custom CSV for the selected icon and is it possible to theme the selected state so that I can control the size of the border (grey border that comes when thumbnails are selected) and its color?

On select image I don't see selected image is highlighted

@benhowell - Thank you for the awesome utility. Everything works perfect but when I select an image it doesn't get highlighted as it does on demo. on select functions gets called and I could print index and image object on console though.
Below is the code I am using:

onImageSelect(index, image) {
console.log('Selected image',index, image)
}

<Gallery
images={IMAGES}
onSelectImage={this.onImageSelect}
enableImageSelection={true}
/>

am I missing something? any help is appreciated. Thanks again.

Allow user to choose what happens on image click (c/o redditor /u/dismantle-the-sun)

I think it'd be useful to let end-users replace the lightbox with their own implementation. Maybe a onOpen() instead of passing customControls to the gallery as a whole. That'd give people the chance to implement things apart from lightboxes to display the full image---for example instead handling the showing of an image preview with an inline block like Google images does it.

shuffle array undefined

i tried using this module and got: Line 136: 'shuffleArray' is not defined no-undef ill would be grateful if i could get the reason why

Remove need to pass in thumbnail width and height

At present, thumbnail width and height need to be passed in as props.
e.g.

{
    src: ...,
    thumbnail: ...,
    thumbnailWidth: ...,
    thumbnailHeight: ...,
    caption: ...
}

Instead, create js image obj and read width and height.

Investigate replacing justification funcs with Flickr's justified layout lib (c/o redditor /u/dismantle-the-sun)

https://github.com/flickr/justified-layout

In Flickr's version you have certain knobs you can toggle:

  • fullWidthBreakoutRowCadence - This lets you insert a fullwidth wide image every N images. Flickr uses it for their album pages. It's also handy for a display with a 'hero' banner style first image.
  • showWidows - should we ommit the last few images from the layout if they can't make up a full row? Useful in two cases:
  • Infinite scrolling: You can cut off a logical 'page', insert a stretch add, then include the ommited images in the next page.
  • Album pages preview & summary; you can cut off the last images and stick a 'more' images button there.
  • maxNumRows - exactly what it sounds like; constrains the # of rows delivered to prevent overly long pages when resizing the screen (or letting you use essentially the same code b/w mobile and desktop).
  • You don't actually need image heights/widths; you can just set a target height and give it aspect ratios. This also simplifies changing the layout to target different device sizes.

The rest of their code deals with edge cases.
Hopefully that helps you decide. For what it's worth, I think its emminently useful.

About your code though....

  • 'srcset' is documented but doesn't appear to be used anywhere; not even the lightbox.

Getting undefined error while using in Sharepoint Framework client side Webpart solution(React)

When i use tag in render i got the following error.

Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in.

When i go through the code i got ' this._gallery.clientWidth' as undefined. From where you are getting this props..
Thanks in advance..

Thumbnails being Forced to viewport size. I want them to show actual size.

For some reason the images are defaulting to 271x180 even though the image was clearly set to 117x77, it still filled 271x180:

companies.json

 "misc": {
        "enabled": true,
        "list": [
          {
            "src": "/lib/assets/xpeppers/company/xpeppers-iteration-planning.jpg",
            "thumbnail": "/lib/assets/xpeppers/company/xpeppers-iteration-planning-thumb.jpg",
            "thumbnailWidth": 116,
            "thumbnailHeight": 77
          }

        ]
      }

screen shot 2017-10-11 at 1 06 20 am

I hacked it manually in Chome Dev tools...and this shows how It should have shown up based on 117x77:

screen shot 2017-10-11 at 12 52 56 am

screen shot 2017-10-11 at 12 53 12 am

The code that calls it

<ImageGallery images={company.images.misc.list} />

ImageGallery.js

import React, { Component } from 'react';
import Gallery from 'react-grid-gallery';

export default class ImageGallery extends React.Component {
  render() {
    return (
      <Gallery images={this.props.images} />
    )
  }
}

You can see here the viewport is not tight to the image width and height. And again I want these thumbs to show smaller

screen shot 2017-10-11 at 1 29 33 am

So how can I get this to work, why is the viewport size overriding my thumbnailWidth and thumbnailHeight?

negative margin-left brokes a grid

Sometimes images look very strange. Can I do anything with it?

screen
Look at top left image. It props

marginLeft: -26
scaletwidth:101
src:"https://pp.userapi.com/c621830/v621830842/2a79a/D5bk9J7tk4s.jpg"
srcset:undefined
thumbnail:"https://pp.userapi.com/c621830/v621830842/2a797/KjtXLuTOrc0.jpg"
thumbnailHeight:604
thumbnailWidth:340
vwidth:49

Props for top right image

marginLeft:-257
scaletwidth:1055
src:"https://pp.userapi.com/c621830/v621830842/2a7ae/QsEpr5qTB_M.jpg"
thumbnail:"https://pp.userapi.com/c621830/v621830842/2a7ab/jEDe8cKl3p0.jpg"
thumbnailHeight:103
thumbnailWidth:604
vwidth:540

Lightbox image size

Can we have a prop to control the lightbox image size? React-images lets you pass in a width prop.

Feature request: Lightbox selection

It would be nice to have the ability to select images (and view whether they were already selected) from within the lightbox as well as the grid.

Passing in className

Is it possible to pass in a className for more find grained control over image layout?

Would like to adjust things to be more responsive.

Don't require thumbnail width & height

Currently, thumbnail width and height properties are required. We can make them as non-required.
So, in this case, the js lib have to calculate the rate of width & height to show properly.
I'm require this feature, because in some cases we aren't know image width & height to set.

Warning on console

Failed prop type: The prop images[3].thumbnailWidthis marked as required inGallery, but its value is undefined.
NaN is an invalid value for the width css style property. Check the render method of Image.

Clickable Customoverlay

When I add a customOverlay with an HTML element with an onClick handler, it doesn't fire when I click on the custom overlay element.

Example:
[{ src: "https://www.html5rocks.com/en/tutorials/speed/img-compression/len_std.jpg", thumbnail: "https://www.html5rocks.com/en/tutorials/speed/img-compression/len_std.jpg", thumbnailWidth: 100, thumbnailHeight: 100, customOverlay: (<button style={{zIndex: 10000}} onClick={()=>{alert('hello!')}}>hello world</button>) }]
When I hover over the thumbnail, the button is visible as expected. But when I click on it the alert never shows and the lightbox shoes instead.

I also using onClickThumbnail to inspect the target to see if I can tell when the button was clicked, but that also doesn't work. The target is always the image tag.

Please let me know what the correct approach is. My goal is to add "delete" button where the user can click an X button to delete the image.

Thanks!

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.