Lazarus component with an OpenGL context, most comfortable to render 3D worlds with 2D controls above. Add your 3D stuff to the scene manager available in SceneManager property. Add your 2D stuff to the TCastleControlCustom.Controls property (from ancestor TCastleControlCustom).
You can directly access the SceneManager and configure it however you like.
You have comfortable Load method that simply loads a single 3D model to your world.
Load a single 3D model to your world (removing other models, and resetting the camera).
This is nice for simple 3D model browsers, but usually for games you don't want to use this method — it's more flexible to create TCastleScene yourself, and add it to scene manager yourself, see engine examples like scene_manager_basic.lpr.