Unity AR/Surface detection using the device camera

I am trying to write a simple application that using the device’s back camera will detect a plain surface and place a 3d object on this surface.

I am not sure on where to start and if its even supported (though I read about some AR kits for unity that might help but I do not want to use markers).

Are there any packages/libraries that can help to achieve the above?

Your questions answer is bit hard. But yes you can use fake surface to project your 3d object on the floor through camera. Hope this following tutorial will help you.

ARkit (for iOS) and ARCore (for Android) do not use markers and are able to recognize surfaces. Both have the unity plugin for free and with examples