Accurate Real-Time Physics Simulation for Large Worlds

Total Page:16

File Type:pdf, Size:1020Kb

Accurate Real-Time Physics Simulation for Large Worlds Accurate Real-time Physics Simulation for Large Worlds Lorenzo Schwertner Kaufmann, Flavio Paulus Franzin, Roberto Menegais and Cesar Tadeu Pozzer Universidade Federal de Santa Maria, Santa Maria, Brazil Keywords: Real-time Physics Simulation, Physics Engines, Large-scale Simulations, Floating-point Imprecision. Abstract: Physics simulation provides a means to simulate and animate entities in graphics applications. For large envi- ronments, physics simulation poses significant challenges due to the inherent known limitations and problems of real number arithmetic operations. Most real-time physics engines use single-precision floating-point for performance reasons, limiting simulation with a lack of precision that causes collision artifacts and positioning errors on large-scale scenarios. Double-precision floating-point physics engines can be used as an alternative, but few exist, and fewer are supported in game engines. In this paper, we propose an efficient solution capable of delivering precise real-time physics simulation in large-scale worlds, regardless of the underlying numeric representation. It implements a layer between high-level applications and physics engines. This layer subdi- vides the world into dynamically allocated sectors which are simulated independently. Objects are grouped into sectors based on their positions. Redundant copies are created for objects crossing sectors’ boundaries, providing seamless simulation across sector edges. We compare the proposed technique performance and precision with standard simulations, demonstrating that our approach can achieve precision for arbitrary scale worlds while maintaining the computational costs compatible with real-time applications. 1 INTRODUCTION pressing infinite real numbers into a limited amount of bytes requires an approximate representation (Gold- Physics simulation plays a fundamental part in many berg, 1991). IEEE-754 floating-point represents real virtual scenarios across a broad range of applications, numbers as d × be, where d is a significand, b is including games, films, and simulations. Physics are a base, and e is an exponent, thus rounding error simulated using physics engines —low-level middle- increases proportionally to value magnitude. Most ware that provides support to physical behaviors, such arithmetic operations using values represented with as fluids, soft and rigid bodies simulation. Games and floating-point precision produce results that cannot be simulations rely on real-time physics engines to pro- represented using a fixed amount of bits, thus requir- vide dynamic, immersive scenarios. For performance ing rounding. reasons, most of these engines operate with single In physics simulations, the rounding error in- floating-point precision, enough to cover a wide range creases proportionally to objects’ distance from the of applications. However, for large-scale scenarios, origin on which the simulation is continuously per- these engines present a limitation due to the low ac- formed, and error accumulates over error. Empiri- curacy of the floating-point numbers, especially when cal experiments suggest that single-precision floating- representing big numbers. Simulations for objects far point limit is 104 units (Unity Community, 2018); from origin might use imprecise values, causing fail- while others define it at 5×103 units (Unity Commu- ure in the collision detection algorithms, varying from nity, 2017), or within the range of 4 × 103 to 8 × 103 small intersections that do not compromise the over- units (Burk et al., 2016). Thus, applications with sce- all simulation to big intersections that spoil the simu- narios larger than these dimensions are susceptible lation (e.g., vehicles falling off a terrain). Moreover, to numerical inaccuracy and may present problems nowadays, it is noticeable that 3D games and graph- throughout the physics simulation. ical simulations, used for training or amusement, are In terms of accuracy, some physics engines are dealing with constantly expanding scenarios, thus re- designed to support double (e.g., Bullet and New- quiring solutions to enable proper visualization and ton Dynamics) instead of single-precision to repre- simulation of moving entities. sent the physics components and provide more accu- Floating-point imprecision occurs because com- racy in calculations. Double-precision math (and thus 135 Kaufmann, L., Franzin, F., Menegais, R. and Pozzer, C. Accurate Real-time Physics Simulation for Large Worlds. DOI: 10.5220/0010194501350142 In Proceedings of the 16th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications (VISIGRAPP 2021) - Volume 1: GRAPP, pages 135-142 ISBN: 978-989-758-488-6 Copyright c 2021 by SCITEPRESS – Science and Technology Publications, Lda. All rights reserved GRAPP 2021 - 16th International Conference on Computer Graphics Theory and Applications double-precision matrix and vector APIs) cannot take quired information for its correct simulation —this as much advantage of SIMD instruction sets (Ericson, requirement is termed awareness. Different tech- 2005), which are generally sized to support and vec- niques focus on partitioning their agents into groups tors that have 32-bit wide components. Few physics while keeping a low number of overlapping between engines support double floating-point precision and regions of interest of objects in different partitions game engines, such as Unity, Unreal Engine 4, Cry —this problem is termed communication level. Be- Engine 3 and Godot do not natively support them. sides it, the distribution of simulations introduces An alternative to increase numerical precision is other problems, such as well-balancing the simulation the origin shifting approach. This approach estab- load across the available processing nodes and how lishes a real-time center point (e.g., the observer po- to operate efficiently since the partitioning algorithms sition), and 1) physics simulation considers the cen- themselves might not scale well. ter point as the Cartesian origin or 2) the objects are (Lozano et al., 2007) explores a complete frame- shifted to the Cartesian origin, having a center point work for scalable large-scale crowd simulations. as a reference, maintaining the same layouts of ob- Their solution successfully provides scalability while jects’ position. In an efficient and precise way, this providing awareness and time-space consistency. approach guarantees the physical simulation for any This is achieved using rectangular grids and dividing dimension of the scenario. However, physics objects the agents according to their position in the grid. must be close to an arbitrary center point. Otherwise, (Vigueras et al., 2010) improves efficiency of pre- inaccuracy errors remain. For sparsely distributed vious methods by employing the use of irregular simulations, e.g., multiplayer games, origin shifting shapes regions (convex hulls). Their results show that does not work. irregular shapes outperform techniques with regular We present a solution compatible with real-time ones, regardless of the crowd simulation. simulations that expands state-of-the-art physics en- (Wang et al., 2009) proposes a technique for parti- gines, ensuring physics simulations enough precision, tioning crowds into clusters, minimizing communica- regardless of the world scale and underlying numeric tion overhead. Their work achieves great scalability representation. Our solution is implemented as a layer through the application of an adapted K-means clus- between high-level applications and physics engines. tering to efficiently partition agent-based crowd sim- This layer split the world in sectors and adds re- ulations. dundancy to each sector, ensuring each part has all Newer techniques explore further performance the required information to, independently, be sim- improvement, either minimizing communication ulated without inconsistencies close to the Cartesian costs, equalizing balancing, or both, while efficiently origin. Furthermore, our solution benefits from how doing so. For example, (Petkova et al., 2016) large-scale worlds application must implement world uses community structures to group related agents streaming due to memory and processing limitations, among processors, reducing communication over- amortizing space partitioning cost. The main con- head. (Wang et al., 2018) explores parallelizing tribution of our work is a novel solution that pro- the simulation per agent using the Power Law in vides arbitrariness in sparse simulations precision, CUDA architecture to ensure behavior synchroniza- enabling floating-point engines to increase precision tion across threads. Their solution explores minute and/or scale. model details while improving efficiency. This paper is organized as follows: Section 2 pro- (Brown et al., 2019) propose a solution applying a vides background and related works on the subject. partitioning solution for physics servers with horizon- Section 3 discusses all the steps of the proposed so- tal scalability. In their work, the scenario is parti- lution in-depth. Section 4 discusses the effects of tioned in regions using Distributed Virtual Environ- the sector size choice. Results are evaluated and dis- ments modeling, and each partition is assigned to cussed in Section 5. Finally, Section 6 presents con- a server for physics simulation. Objects interacting clusion and directions for future work. across partition boundaries are handled by projecting objects in overlapping regions to guarantee a seamless simulation.
Recommended publications
  • Master's Thesis
    MASTER'S THESIS Online Model Predictive Control of a Robotic System by Combining Simulation and Optimization Mohammad Rokonuzzaman Pappu 2015 Master of Science (120 credits) Space Engineering - Space Master Luleå University of Technology Department of Computer Science, Electrical and Space Engineering Mohammad Rokonuzzaman Pappu Online Model Predictive Control of a Robotic System by Combining Simulation and Optimization School of Electrical Engineering Department of Electrical Engineering and Automation Thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Technology Espoo, August 18, 2015 Instructor: Professor Perttu Hämäläinen Aalto University School of Arts, Design and Architecture Supervisors: Professor Ville Kyrki Professor Reza Emami Aalto University Luleå University of Technology School of Electrical Engineering Preface First of all, I would like to express my sincere gratitude to my supervisor Pro- fessor Ville Kyrki for his generous and patient support during the work of this thesis. He was always available for questions and it would not have been possi- ble to finish the work in time without his excellent guidance. I would also like to thank my instructor Perttu H¨am¨al¨ainen for his support which was invaluable for this thesis. My sincere thanks to all the members of Intelligent Robotics group who were nothing but helpful throughout this work. Finally, a special thanks to my colleagues of SpaceMaster program in Helsinki for their constant support and encouragement. Espoo, August 18,
    [Show full text]
  • Seamscape a Procedural Generation System for Accelerated Creation of 3D Landscapes
    SeamScape A procedural generation system for accelerated creation of 3D landscapes Bachelor Thesis in Computer Science and Engineering Link to video demonstration: youtu.be/K5yaTmksIOM Sebastian Ekman Anders Hansson Thomas Högberg Anna Nylander Alma Ottedag Joakim Thorén Chalmers University of Technology University of Gothenburg Department of Computer Science and Engineering Gothenburg, Sweden, June 2016 The Authors grants to Chalmers University of Technology and University of Gothenburg the non-exclusive right to publish the Work electronically and in a non-commercial purpose make it accessible on the Internet. The Author warrants that he/she is the author to the Work, and warrants that the Work does not contain text, pictures or other material that violates copyright law. The Author shall, when transferring the rights of the Work to a third party (for example a publisher or a company), acknowledge the third party about this agreement. If the Author has signed a copyright agreement with a third party regarding the Work, the Author warrants hereby that he/she has obtained any necessary permission from this third party to let Chalmers University of Technology and University of Gothenburg store the Work electronically and make it accessible on the Internet. SeamScape A procedural generation system for accelerated creation of 3D landscapes Sebastian Ekman Anders Hansson Thomas Högberg Anna Nylander Alma Ottedag Joakim Thorén c Sebastian Ekman, 2016. c Anders Hansson, 2016. c Thomas Högberg, 2016. c Anna Nylander, 2016. c Alma Ottedag, 2016.
    [Show full text]
  • Agx Multiphysics Download
    Agx multiphysics download click here to download A patch release of AgX Dynamics is now available for download for all of our licensed customers. This version include some minor. AGX Dynamics is a professional multi-purpose physics engine for simulators, Virtual parallel high performance hybrid equation solvers and novel multi- physics models. Why choose AGX Dynamics? Download AGX product brochure. This video shows a simulation of a wheel loader interacting with a dynamic tree model. High fidelity. AGX Multiphysics is a proprietary real-time physics engine developed by Algoryx Simulation AB Create a book · Download as PDF · Printable version. AgX Multiphysics Toolkit · Age Of Empires III The Asian Dynasties Expansion. Convert trail version Free Download, product key, keygen, Activator com extended. free full download agx multiphysics toolkit from AYS search www.doorway.ru have many downloads related to agx multiphysics toolkit which are hosted on sites like. With AGXUnity, it is possible to incorporate a real physics engine into a well Download from the prebuilt-packages sub-directory in the repository www.doorway.rug: multiphysics. A www.doorway.ru app that runs a physics engine and lets clients download physics data in real Clone or download AgX Multiphysics compiled with Lua support. Agx multiphysics toolkit. Developed physics the was made dynamics multiphysics simulation. Runtime library for AgX MultiPhysics Library. How to repair file. Original file to replace broken file www.doorway.ru Download. Current version: Some short videos that may help starting with AGX-III. Example 1: Finding a possible Pareto front for the Balaban Index in the Missing: multiphysics.
    [Show full text]
  • Repair Manual
    Repair Manual Showing Short Cuts and Methods for Repairing and Upkeep Durant and Star Cars FOUR CYLINDER MODELS JANUARY, 1929 DURANT MOTORS, Inc. BROADWAY AT 57th STREET NEW YORK CITY DURANT MOTOR CO. of NEW JERSEY DURANT MOTOR CO. of MICHIGAN Elizabeth, N. J. Lansing, Michigan DURANT MOTOR CO. of CALIFORNIA DURANT MOTOR CO. of CANADA, LTD. Oakland, Cal. Toronto (Leaside), Ontario 1 Blank page 2 WARRANTY E warrant each new DURANT and STAR motor vehicle so by us to be free from defects in material W under normal use and service, our obligation under this warranty being limited to making good at our factory any part or parts thereof which shall with ninety (90) days after delivery of such vehicle to the original purchaser be returned to us, transportation charges prepaid, and which our examination shall disclose to our satisfaction to have been thus defective, this warranty being expressly in lieu of all other warranties expressed or implied and of all other obliga- tions or liabilities on our part. This warranty shall not apply to any vehicle which shall have been repaired or altered outside of our factory in any way, so as in our judgment, to affect its stability or reliability, nor which has been subject to misuse, negligence or accident. We make no warranty whatever in respect to tires, rims, ignition apparatus, horns or other signaling devices, starting devices, generators, batteries, speedometers or other trade accessories, inasmuch as they are usually warranted separately by their respective manufacturers. We do not make any guarantee against, and we assume no responsibility for, any defect in metal or other material, or in any part, device, or trade accessory that cannot be dis- covered by ordinary factory inspection.
    [Show full text]
  • Cloud-Based Visual Discovery in Astronomy: Big Data Exploration Using Game Engines and VR on EOSC
    Novel EOSC services for Emerging Atmosphere, Underwater and Space Challenges 2020 October Cloud-Based Visual Discovery in Astronomy: Big Data Exploration using Game Engines and VR on EOSC Game engines are continuously evolving toolkits that assist in communicating with underlying frameworks and APIs for rendering, audio and interfacing. A game engine core functionality is its collection of libraries and user interface used to assist a developer in creating an artifact that can render and play sounds seamlessly, while handling collisions, updating physics, and processing AI and player inputs in a live and continuous looping mechanism. Game engines support scripting functionality through, e.g. C# in Unity [1] and Blueprints in Unreal, making them accessible to wide audiences of non-specialists. Some game companies modify engines for a game until they become bespoke, e.g. the creation of star citizen [3] which was being created using Amazon’s Lumebryard [4] until the game engine was modified enough for them to claim it as the bespoke “Star Engine”. On the opposite side of the spectrum, a game engine such as Frostbite [5] which specialised in dynamic destruction, bipedal first person animation and online multiplayer, was refactored into a versatile engine used for many different types of games [6]. Currently, there are over 100 game engines (see examples in Figure 1a). Game engines can be classified in a variety of ways, e.g. [7] outlines criteria based on requirements for knowledge of programming, reliance on popular web technologies, accessibility in terms of open source software and user customisation and deployment in professional settings.
    [Show full text]
  • An Optimal Solution for Implementing a Specific 3D Web Application
    IT 16 060 Examensarbete 30 hp Augusti 2016 An optimal solution for implementing a specific 3D web application Mathias Nordin Institutionen för informationsteknologi Department of Information Technology Abstract An optimal solution for implementing a specific 3D web application Mathias Nordin Teknisk- naturvetenskaplig fakultet UTH-enheten WebGL equips web browsers with the ability to access graphic cards for extra processing Besöksadress: power. WebGL uses GLSL ES to communicate with graphics cards, which uses Ångströmlaboratoriet Lägerhyddsvägen 1 different Hus 4, Plan 0 instructions compared with common web development languages. In order to simplify the development process there are JavaScript libraries handles the Postadress: Box 536 751 21 Uppsala communication with WebGL. On the Khronos website there is a listing of 35 different Telefon: JavaScript libraries that access WebGL. 018 – 471 30 03 It is time consuming for developers to compare the benefits and disadvantages of all Telefax: these 018 – 471 30 00 libraries to find the best WebGL library for their need. This thesis sets up requirements of a Hemsida: specific WebGL application and investigates which libraries that are best for http://www.teknat.uu.se/student implmeneting its requirements. The procedure is done in different steps. Firstly is the requirements for the 3D web application defined. Then are all the libraries analyzed and mapped against these requirements. The two libraries that best fulfilled the requirments is Three.js with Physi.js and Babylon.js. The libraries is used in two seperate implementations of the intitial game. Three.js with Physi.js is the best libraries for implementig the requirements of the game.
    [Show full text]
  • Procedural Destruction of Objects for Computer Games
    Procedural Destruction of Objects for Computer Games PUBLIC VERSION THESIS submitted in partial fulfilment of the requirements for the degree of MASTER OF SCIENCE in MEDIA AND KNOWLEDGE ENGINEERING by Joris van Gestel born in Zevenhuizen, the Netherlands Computer Graphics and CAD/CAM Group Cannibal Game Studios Department of Mediamatics Molengraaffsingel 12-14 Faculty of EEMCS, Delft University of Technology 2629 JD Delft Delft, the Netherlands The Netherlands www.ewi.tudelft.nl www.cannibalgamestudios.com Author: Joris van Gestel Student id: 1099825 Email: [email protected] Date: May 10, 2011 © 2011 Cannibal Game Studios. All Rights Reserved i Summary Traditional content creation for computer games is a costly process. In particular, current techniques for authoring destructible behaviour are labour intensive and often limited to a single object basis. We aim to create an intuitive approach which allows designers to visually define destructible behaviour for objects in a reusable manner, which can then be applied in real-time. First we present a short introduction into the way that destruction has been done in games for many years. To better understand the physical processes that are being replicated, we present some information on how destruction works in the real world, and the high level approaches that have developed to simulate these processes. Using criteria gathered from industry professionals, we survey previous research work and determine their usability in a game development context. The approach which suits these criteria best is then selected as the basis for the approach presented in this work. By examining commercial solutions the shortcomings of existing technologies are determined to establish a solution direction.
    [Show full text]
  • The Uses of Animation 1
    The Uses of Animation 1 1 The Uses of Animation ANIMATION Animation is the process of making the illusion of motion and change by means of the rapid display of a sequence of static images that minimally differ from each other. The illusion—as in motion pictures in general—is thought to rely on the phi phenomenon. Animators are artists who specialize in the creation of animation. Animation can be recorded with either analogue media, a flip book, motion picture film, video tape,digital media, including formats with animated GIF, Flash animation and digital video. To display animation, a digital camera, computer, or projector are used along with new technologies that are produced. Animation creation methods include the traditional animation creation method and those involving stop motion animation of two and three-dimensional objects, paper cutouts, puppets and clay figures. Images are displayed in a rapid succession, usually 24, 25, 30, or 60 frames per second. THE MOST COMMON USES OF ANIMATION Cartoons The most common use of animation, and perhaps the origin of it, is cartoons. Cartoons appear all the time on television and the cinema and can be used for entertainment, advertising, 2 Aspects of Animation: Steps to Learn Animated Cartoons presentations and many more applications that are only limited by the imagination of the designer. The most important factor about making cartoons on a computer is reusability and flexibility. The system that will actually do the animation needs to be such that all the actions that are going to be performed can be repeated easily, without much fuss from the side of the animator.
    [Show full text]
  • FREE STEM Apps for Common Core Daniel E
    Georgia Southern University Digital Commons@Georgia Southern Interdisciplinary STEM Teaching & Learning Conference Mar 6th, 2:45 PM - 3:30 PM FREE STEM Apps for Common Core Daniel E. Rivera Mr. Georgia Southern University, [email protected] Follow this and additional works at: https://digitalcommons.georgiasouthern.edu/stem Recommended Citation Rivera, Daniel E. Mr., "FREE STEM Apps for Common Core" (2015). Interdisciplinary STEM Teaching & Learning Conference. 38. https://digitalcommons.georgiasouthern.edu/stem/2015/2015/38 This event is brought to you for free and open access by the Conferences & Events at Digital Commons@Georgia Southern. It has been accepted for inclusion in Interdisciplinary STEM Teaching & Learning Conference by an authorized administrator of Digital Commons@Georgia Southern. For more information, please contact [email protected]. STEM Apps for Common Core Access/Edit this doc online: h​ttp://goo.gl/bLkaXx Science is one of the most amazing fields of study. It explains our universe. It enables us to do the impossible. It makes sense of mystery. What many once believed were supernatural or magical events, we now explain, understand, and can apply to our everyday lives. Every modern marvel we have - from medicine, to technology, to agriculture- we owe to the scientific study of those before us. We stand on the shoulders of giants. It is therefore tremendously disappointing that so many regard science as simply a nerdy pursuit, or with contempt, or with boredom. In many ways w​ e stopped dreaming.​ Yet science is the alchemy and magic of yesterday, harnessed for humanity's benefit today. Perhaps no other subject has been so thoroughly embraced by the Internet and modern computing.
    [Show full text]
  • Rulemaking: 1999-10 FSOR Emission Standards and Test Procedures
    State of California Environmental Protection Agency AIR RESOURCES BOARD EMISSION STANDARDS AND TEST PROCEDURES FOR NEW 2001 AND LATER MODEL YEAR SPARK-IGNITION MARINE ENGINES FINAL STATEMENT OF REASONS October 1999 State of California AIR RESOURCES BOARD Final Statement of Reasons for Rulemaking, Including Summary of Comments and Agency Response PUBLIC HEARING TO CONSIDER THE ADOPTION OF EMISSION STANDARDS AND TEST PROCEDURES FOR NEW 2001 AND LATER MODEL YEAR SPARK-IGNITION MARINE ENGINES Public Hearing Date: December 10, 1998 Agenda Item No.: 98-14-2 I. INTRODUCTION AND BACKGROUND ........................................................................................ 3 II. SUMMARY OF PUBLIC COMMENTS AND AGENCY RESPONSES – COMMENTS PRIOR TO OR AT THE HEARING .................................................................................................................. 7 A. EMISSION STANDARDS ................................................................................................................... 7 1. Adequacy of National Standards............................................................................................. 7 2. Lead Time ................................................................................................................................. 8 3. Technological Feasibility ........................................................................................................ 13 a. Technological Feasibility of California-specific Standards ..............................................................13
    [Show full text]
  • Game Engine Review
    Game Engine Review Mr. Stuart Armstrong 12565 Research Parkway, Suite 350 Orlando FL, 32826 USA [email protected] ABSTRACT There has been a significant amount of interest around the use of Commercial Off The Shelf products to support military training and education. This paper compares a number of current game engines available on the market and assesses them against potential military simulation criteria. 1.0 GAMES IN DEFENSE “A game is a system in which players engage in an artificial conflict, defined by rules, which result in a quantifiable outcome.” The use of games for defence simulation can be broadly split into two categories – the use of game technologies to provide an immersive and flexible military training system and a “serious game” that uses game design principles (such as narrative and scoring) to deliver education and training content in a novel way. This talk and subsequent education notes focus on the use of game technologies, in particular game engines to support military training. 2.0 INTRODUCTION TO GAMES ENGINES “A games engine is a software suite designed to facilitate the production of computer games.” Developers use games engines to create games for games consoles, personal computers and growingly mobile devices. Games engines provide a flexible and reusable development toolkit with all the core functionality required to produce a game quickly and efficiently. Multiple games can be produced from the same games engine, for example Counter Strike Source, Half Life 2 and Left 4 Dead 2 are all created using the Source engine. Equally once created, the game source code can with little, if any modification be abstracted for different gaming platforms such as a Playstation, Personal Computer or Wii.
    [Show full text]
  • The Video Game Industry an Industry Analysis, from a VC Perspective
    The Video Game Industry An Industry Analysis, from a VC Perspective Nik Shah T’05 MBA Fellows Project March 11, 2005 Hanover, NH The Video Game Industry An Industry Analysis, from a VC Perspective Authors: Nik Shah • The video game industry is poised for significant growth, but [email protected] many sectors have already matured. Video games are a large and Tuck Class of 2005 growing market. However, within it, there are only selected portions that contain venture capital investment opportunities. Our analysis Charles Haigh [email protected] highlights these sectors, which are interesting for reasons including Tuck Class of 2005 significant technological change, high growth rates, new product development and lack of a clear market leader. • The opportunity lies in non-core products and services. We believe that the core hardware and game software markets are fairly mature and require intensive capital investment and strong technology knowledge for success. The best markets for investment are those that provide valuable new products and services to game developers, publishers and gamers themselves. These are the areas that will build out the industry as it undergoes significant growth. A Quick Snapshot of Our Identified Areas of Interest • Online Games and Platforms. Few online games have historically been venture funded and most are subject to the same “hit or miss” market adoption as console games, but as this segment grows, an opportunity for leading technology publishers and platforms will emerge. New developers will use these technologies to enable the faster and cheaper production of online games. The developers of new online games also present an opportunity as new methods of gameplay and game genres are explored.
    [Show full text]