##############
Data Streaming
##############

HOOPS Luminate can be used in applications that render large assemblies and that require data streaming. First, the preferred rendering architecture for these applications can be the :doc:`/book/subjects/bk_ba/bk_ba_tm/bk_ba_multi_threaded_performance_critical_applications`: one thread will be in charge of feeding HOOPS Luminate with new streamed data, while the rendering takes place in parallel, on the rendering thread.

The application must take care of image management, as detailed in the doc :doc:`/book/subjects/bk_ba/bk_ba_tm/bk_ba_modifying_images_during_a_draw` and in the doc :doc:`/book/subjects/bk_ba/bk_ba_tm/bk_ba_multi_threaded_performance_critical_applications` under the **Image Management** section, as HOOPS Luminate is synchronous on images.

Then, data streaming may imply on-the-fly operation on existing datasets. :doc:`/book/subjects/bk_bm/bk_bm_material_batching` may be key to reach a good performance level in performing selective edition of GPU memory batches.