Code Monkey home page Code Monkey logo

remote-faces's Introduction

logo

Remote Faces

A small app to share webcam still images periodically

Motivation

Working from home is a working style that has existed and is usual nowadays. Tools such as instant messaging and video conferencing allow working from home. Those tools are useful and mandatory, but it turns out that it would also be nice to have another tool to feel connected.

"Remote Faces" is a small app to share a webcam still image. The image will be updated only periodically. The size of the image is small enough to keep your privacy to some extent. It doesn't involve a server to transfer image data, but it's done in a peer-to-peer manner.

Goal

The goal of this project is to provide a tool for people working from home. The tool will be kept running during working and used occasionally. It would fill the gap between working in office and working from home. It would be complementary to more active tools like email, messaging, phone and scheduled video calls.

Although not a primary goal, as we take privacy seriously, our technology focus is for peer-to-peer network.

How to use

Just visit the following link to jump to the latest tool.

https://remote-faces.js.org

Google Chrome on PC is recommended. It may work on other browsers including some on mobile.

You may also Select Remote Faces Versions in case the latest version has some issues.

To create a new room, click the button and the app starts immediately. Copy the URL and share it with your colleagues. It will take your face image with webcam every two minuites. At first, you will only see your face, but once your colleagues enter the room, face images are broacasted within the room. Note this app is based on peer-to-peer technology, and the images are only transferred in the participants of the room.

If you are trying this app for the first time, you can open the app in multiple tabs in Chrome. You can open it as many as you want and simulate the app behavior with many participants.

If you have a question, don't hesitate to open an issue for it.

How to contribute

This is an open source project and your contribution is important. The web app is built with React and IPFS PubSub with WebRTC, alternatively PeerJS.

We welcome your contribution at any level; from coding, issue reporting, bug fixing, discussing features, documentation and to promotion!

For more information, check out CONTRIBUTING.md.

Screenshots (Legacy Version)

screenshot

Downloads

Once you are used the tool, you might want a standalone app. Technically, it's just a wrapper and features are basically the same. If you are not familiar, you can continue using Chrome to use the app.

https://github.com/dai-shi/remote-faces/releases

Blogs

remote-faces's People

Contributors

akio62 avatar dai-shi avatar dependabot[bot] avatar kobatastu avatar molmoit avatar monisoi avatar t6adev 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

Watchers

 avatar  avatar  avatar  avatar  avatar

remote-faces's Issues

[feature] passive chat

The current status message is too limited. We want to chat, but somewhat passively.

Ideas:

  • one big chat area instead of one field per user
  • a user can send messages many times
  • messages will be disappear in a certain period
  • [nice to have] reaction to a messaage

We could leave the status message feature, but as people start using "Your Name" as status, so it would be better to have another feature to show a message on an image. So, once this passive chat lands, we will revisit it.

[feature] broadcast short voice message

It might be nice to send one-way voice message for small talk like "I'm tired" "It's raining" "I did it" and so on. The message will be played by clicking something.

[web] Local development environment

Google Chrome configuration

It requires to configure flags on Chrome. Open chrome://flags/ and configure like the below.

2020-04-07 8 45 44

MacOS Firewall

You need to configure MacOS Firewall allow external access.

In the case of Google Chorme, it should look like this:

image

video indicator and auto reconnect issues in the network module

#62 was pretty good with a new method without peer.call.
However that are some remaining issues.

  • video+audio -> video only doesn't change the indicator (there are no remove events...)
  • going offline still shows available indicator (for two minutes at most)
  • can't auto re-connect in live mode when underlying peer reconnects (after two minutes, it works)

Overall, I'm still not sure what's the best way to use MediaStream and MediaStreamTrack.

[feature] broadcast poke (simple counter)

Add a "poke" button, that increments a tiny counting number on the face image of the user. It should broadcast the updated count immediately (without taking another photo).

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.