Giter VIP home page Giter VIP logo

neospublic's People

Contributors

frooxius avatar kazu0617 avatar mralext20 avatar probableprime avatar psychpsyo avatar shadowpanther avatar shiftyscales avatar sirkitree avatar snooperxp 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neospublic's Issues

Ignore touch events outside of the user's field of view

https://steamcommunity.com/app/740250/discussions/0/3211505894145549553/

--- it is possible to push buttons while moving a window (this sounds like a feature, and maybe it's good to be able to do it, but for instance, if the button is currently not in the users view, it is probably not the users intent to press it)

  • Do angle-based filtering (meaning it can be at the edge of the view)?
  • Simply ignore the events?
  • Or pass a special flag in the touchable event data? (I like this one)

Save position of system menu on exit

Each time I log into Neos, the main menu and keyboard are overlapping me. I have to step back to see and grab them and then find an optimal position for them. It would be really very nice if they remembered their position from session to session.

Make flying locomotion more like Google Earth

While there is a flight mode within Neos, it's a bit confusing to use. The most recognized flight mode in use these days for VR is the way Google Earth uses it. Basically, point where you want to go and hit 'up' on the trackpad to fly forwards, or 'down' on the trackpad to fly backwards.

I think people would get this a bit more intuitively as it's a pretty common thing to have experienced this method of locomotion.

Undo/Redo

Many times while editing a world I've done something undesirable or moved something by accident and wished there were a way to undo that action.

Snap turning

I've seen a couple of requests now for snap turning. This would ideally be a turn of the user at about 45% or less when the right or left button of the thumbpad is pressed.

Pre-caching assets

Pre-download assets for common experiences (such as the hub) into a special folder, which will be checked before they're download.

These files will be included in the public Steam channel and other distribution platforms and will significantly speed up initial loading of the common experiences and ease some load our own servers.

Timeline Animation/Sequencing System

Implement animation system based on a timeline, where various events, curves, audio files and other elements can be placed to drive other elements in the world.

Importing a model leaves an "Import" object in the inspector hierarchy

Steps to reproduce:

  1. open up an inspector window for the scene using the red developer tool tip and the context radial menu
  2. note the hierarchy
  3. use the import tool tip to open a file browser
  4. browse to a model file on your hard drive with the file browser
  5. grip to grab the model file you want to import (fbx)
  6. place the resulting sphere where you want the model
  7. click 'import here' from the sphere's radial menu
  8. go through the wizard to choose your options
  9. once the model is imported, take a look at your inspector window again and note that on the same level as the "Model" object, there is also an empty "Import" object

It would be nice if these weren't left in the hierarchy. I manually delete them currently, but that's just because I'm probably a bit too anal retentive about my scene hierarchy.

I think this is a bug, but maybe there's a reason to keep these? In any case, it's really low priority.

Before import:
20180428192258_1

Orb:
20180428192313_1

Model and Import node:
20180428192340_1

Item Inventory

  • A special storage for arbitrary Neos objects - tools, world orbs, materials etc.

  • Can be brought up anywhere to extract or store items

  • Synchronized in the cloud for logged in users

  • Categories/folders for better organization

  • Preload it with basic tools so users don't have to hunt them around Neos

  • What should it look like?

  • Seen by other users? Private?

  • Extract duplicate items by default? (meaning explicit delete button) Use tool shelves for temporary transfers

Do not allow login dialog while in public spaces

While the login dialog and keyboard are private and local-only so cannot be seen by other users, it might still be possible to infer confidential information from the hand/controller movements, so as a precaution only allow its use in Local Home (automatically switch there?)

Playlist Music Player

Allow loading a whole folder structure with music files that will play in sequence (or randomized) to allow for listening to music, DJing and so on.

The best way to implement this is probably load the file list, but not all of the actual files and always only keep two (or three) audio files loaded - the current one and the next one. This will both save memory and prevent from all the files being synchronized at once in case it's used in public space.

Developer mode doesn't quite turn off?

Using the red developer tool tip, bring up the context menu, and turn on developer mode.

Notice that little T icons appear all over everything.

Hit the context menu and turn off developer mode.

Notice that the little T icons everywhere are still present.

Expected the little T icons to disappear.

More options for restricting editability of the worlds

  • Add more finegrained options into the user spawner to configure avatars - disallow specific locomotion modes and actions
  • Disallow transferring objects from other worlds in (such as developer tools) and out?
  • Disallow saving the world

Important node: These will be only soft restrictions, someone with some technical knowledge will be able to circumvent those if they'll really want to, but will prevent casual users from performing those actions if they're undesirable to a good experience.

Implement spawn areas

Set of components for defining spawn areas and other spawn properties (such as spawning into a specific coordinate system).

The default spawn system will automatically pick one of the spawn areas and spawn the user within.

Loading image metadata (such as EXIF and Geo references)

Add support to extracting metadata from loaded/imported textures in Neos and an easy way to read them using other scripts in Neos.

Should this be done in import selectively? Or should it be loaded as part of the texture data? (might have unnecessary overhead if done for all).

Mirror

For some self-reflection.

Likely implement this as a texture provider, whose transform determines the mirroring plane and then use in conjunction with the right shader to render it out appropriately mapped, using standard texture asset references.

Object ID / License System

I'd like to add a special component for that to hold the licensing information and place it on the objects. Could be placed manually (via tool ideally) as well for things you make within Neos.

That'd also allow license-aware tools and objects. Like generating credits automatically from everything in the world. Or checking for license conflicts or simply pointing at object and showing UI that tells you who made it and what can you do with it.

It would be also automatically placed on the objects when they are imported from external libraries and API's.

Improve mapping for Rift Touch controllers

  • Don't press joystick for locomotion, just move it
  • Allow sliding to the sides (this will apply to Vive as well)
  • Better snap rotation - use the extra button to draw an arc with the controller
    -- Make this depend on the current locomotion mode? Snap rotation when Teleport is active, actually actively spin when draw moving? But turning is way more vomit-inducing than moving, so might not be desirable in any mode.

Physics Rigidbody simulation

Add support for physics rigidbody simulation and related functionality. With the BEPUv2 upgrade nearing completion, I'm updating this issue to better explain what will actually be coming with proper Physics Rigidbody simulation.

With the upgrade (#232) it is actually possible to get rigidbody-like behavior by unlocking rotation on the CharacterController. This is a lot of fun to play with, as it will mostly behave like actual rigidbody, but it's very important to understand its limitations.

This is because CharacterController under the hood is actually a rigidbody (typically with rotation simulation locked) with extra stuff for good character control. Now this extra stuff is part of what doesn't make them suitable for large scale simulations - they'll be glitchy, eat a lot of CPU and network bandwidth. They are optimized for different use-case:

Why character controllers aren't suitable for rigidbody simulations

  • They're optimized for character locomotion and will have odd behavioral quirks when used otherwise, these will be addressed by the actual rigidbody support, so before that comes you'll have to deal with them
  • Having many of them won't perform well, both on CPU and network. They're not optimized for this use case
  • You have limited control. You can't control aspects like friction or create constraints (e.g. joining bodies with joints, hinges, motors etc) that actual rigidbodies support.
  • We STRONGLY discourage building too complex long term content with this mechanism, other than one that involves actual character control.

Now if you understand these limitations, feel free to have fun with them in the meanwhile, before the full support actually comes. Neos is all about tinkering, toying around and messing with things and it will give you a bit of a taste of what will come.

Here are some examples of how the "proto-rigidbodies" behave:
https://youtu.be/Oz8q7_GUDV4
https://youtu.be/8dQZjtt9t-4

What will full rigidbody support offer?

The full rigidbody support covered by this issue is a significant chunk of work that will come after the BEPUv2 upgrade completes. It will focus on following:

  • CPU and network efficiency - with engine optimizations, efficient handling of many bodies in the simulation and specialized network encoding will allow you to have many bodies in the world with significantly lower impact
    Simple to use with less glitchiness - controlling the friction, bounciness, applying forces and impulses and more, without the extra “cruft” that character controllers have - these will be pure rigidbodies
  • Constraints - you will be able to connect the rigidbodies with a number of constraints - joints, springs, hinges, motors and more, to create complex setups and interactions
  • Smooth simulation and interaction for everyone - character controllers are simulated by a single user only and can be quite choppy and glitchy (for example when grabbing they just randomly poof off somewhere) for others if not setup properly. Full rigidbody support will be designed to not have these issues.
  • New features and tools - instead of having to go through convoluted process to enable the simulation, we’ll add quick tools and integrate physical interactions across Neos, to make it very easy to start playing with them and building cool content

Make sure to also check the roadmap for physics support, we'll expand it with individual tasks once work begins on this (we're still finishing BEPUv2 upgrade at the moment, so it won't happen before then): https://github.com/Neos-Metaverse/NeosPublic/projects/19

Multiple Roots

I'm honestly not sure how this happened, or how to reproduce it, but I noticed that on my Local home there are multiple roots showing. Deleting one deletes everything.
20180423132750_1

Move object closer/farther with a swipe of the thumbpad

When lasering a target object, I'd like to be able to move it farther away from me or closer to me. I currently must move my arm back and forward a lot for this, grabbing and letting go, or rely on teleportation, teleporting closer then grabbing, teleporting again to place where I want.

It would be a great usability improvement if I could instead swipe up on the thumb pad to move things further away from me, or swipe down to move the object closer to me.

What do you think?

Import materials to use in material gun

It would be nice if instead of pulling in a model that has a material, then using the material gun to extract the material, if we could just import a material file (.mtl) into a world and it would appear as a material sphere which could then be placed into the material gun.

Registration response looks like error

https___cloudx azurewebsites net_verify_u-sirkitree_0867e61f22adfa2b3c6e2e3166622011 - google chrome 2018-04-23 13 20 13

After registering from within Neos, I received an email. When I clicked the link, it took me to an XML document instead of an HTML document. This could be perceived as an error to someone unfamiliar with the difference.

Import progress report

Show an indicator that importing is going on and some basic info about the phase of the import process.

Make brushes interact with the point-snappable system

This will allow things like drawing straight lines, grids, circles or anything else where the points can be constrained.

Using the existing point-snapping system (which is used for gizmos) will enhance the flexibility of the system, so any additions to the gizmo system for snapping can be utilized for brushes as well (and vice versa).

Collapsible Components in UI

Observation: when using the inspector, some objects have a TON of properties on the right hand side. You can scroll through these easily enough with the cursor and swiping up and down.

Idea: If each major component on the right hand side was collapsible and expandable, sort of like the left-hand side of the inspector hierarchy, it would be easier to navigate objects with many component properties.

I've attached an image with the sections that I'm referring to. The pieces with the red arrows.
20180422220653_1 jpg - photos 2018-04-26 12 47 38

Introductory tutorial

Create a tutorial that will go over the basic controls when users first launch Neos.

Asset Variant system

I'll allow to specify which "variant" of each asset to load and allows requesting them dynamically.
For textures this includes scales (e.g. mobile clients will load lower res variants) but also texture compression (ETC2 on mobile, DTX1/5 /BCx on desktop, Tegra devices...).

Another part of it is optimization based on scenarios. Say you're on a mobile connection (or a very slow one), so you tell Neos to prefer heavily compressed variants. So it'll load audio/video files with heavier compression, lower version textures or lossily compressed, same with meshes, which might have quantization errors, but significantly lower sizes.
On the other end you're a high-end nut, so you tell it to load 8K texture where available, losslesly compressed audio tracks and so on.

It's also one of the processing jobs that the cloud infrastructure will offer for the subscription/Neos credits. Recompressing your assets into different variants for different devices.

Video assets are not playing smoothly

When importing small mp4 videos, I noticed that they seem to stop and stutter sporadically.

Expected them to play normally, never stopping, always looping.

I've created a room to demonstrate this called "trip.sirkitree" and submitted it to the hub so you can see what I mean.

Here is a sample mp4 file.
1.zip

Audio streaming

When hanging out with MR-Alex yesterday, we noticed that video files have a streaming option, but audio files do not. Is this something that could be added in the future? I assume the option allows it to play as it downloads for the user vs having to download the full file all at once before playing, but I'm not sure. Just thought I'd log it since Alex brought it up.

Document how to find tools

I had this question, and so have others. Most VR experiences have these available within your controller menus. Neos replies on you to find them in-world and take them with you. This should be documented for new users.

duplicating logix nodes

noticed an issue when duplicating logix nodes that are attached already with wires.
after severing the wires the nodes seemed to not work correctly or were retaining false/null values

Discord integration

Integrate Neos with Discord, showing the current status, letting users to join in sessions and so on.

Adding lots of audio severely reduces framerates

I imported a sound file, made it loop, and then duplicated it a bunch of times and added them to a bunch of models. The intent was that eeach sphere in the scene would have a low hum that you hear as you get closer to it. But it really started lagging render times. So I removed them and opted for just one ambient audio sound.

I don't know if adding lots of players is what did it, or if perhaps my wav file was too large and duplicating it many times was the problem.

Attaching the file I was using.
low-frequency-humming-noise.zip

Implement projective drawing for the brush system

This will allow to draw on walls, objects and other surfaces easily, which will be handy for many different brushes. For example the grass brush could be used to easily cover terrain with foliage or simple pen brushes could be used to draw on a flat surface like a board with this.

Hover highlights

https://steamcommunity.com/app/740250/discussions/0/3211505894145549553/

  • The ability to drag multiple objects at once (inside the controller sphere) is a bit fun and neat. however I feel like in most cases it would be more useful if you interact with one object at the time (per hand) and that you can see which object via hover-highlight before you start the action.
  • In general for any object when in laser mode? This could help indicate which objects can be interacted with and which cannot and in what context
  • The highlight level would also be delegated to the current tooltip, so it's clear which element it'll interact with

Hide/Show Keyboard

Currently there is no way to hide the keyboard. You have to move it around to keep it out of your way which can be slightly awkward. It would be desirable to have a way to close the keyboard, and maybe re-summon it from a button on the main menu, or within the context menu.

Adjacent to this, it would be nice if the keyboard popped up in front of me when selecting any sort of text input, such as within the developer panel.

[Bug] Rendering of vertex colors in fbx models transparent

I've imported some models that I created in Blocks by Google. It seems that when I split up a face and add a different color to that one particular face (which I believe is saved as a vertex color) and then import to Neos, some of the colors show up as transparent.

I created a world called "household models.sirkitree" where you can see this. The models in question are the stove (black stove top burners are transparent) and the potted plant (lighter green highlight on the leaves is transparent).

Here are links to where you can download these models from Poly. I used the FBX version.

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.