Method and module for generating visual or audiovisual data in real time
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- SCENGRAFICS
- Filing Date
- 2024-07-18
- Publication Date
- 2026-05-27
AI Technical Summary
Current audiovisual systems are limited by a linear production model, making real-time improvisation and modification of visual and sound elements impossible, as they require pre-defined timelines and are inaccessible to non-technical users due to complexity and programming requirements.
A method and module for generating visual or audiovisual data in real-time using a calculation unit that allocates and reassigns primitive data for objects on planes, allowing for dynamic movement, rhythm, and intensity adjustments, enabling the creation of image streams with evolving visual and behavioral parameters, which can be controlled manually or through pointing tools.
Enables instant creative expression and improvisation in audiovisual art by allowing users to generate and modify visual and sound elements in real-time, overcoming the limitations of linear production models and making advanced audiovisual techniques more accessible to a broader audience.
Smart Images

Figure EP2024070442_23012025_PF_FP_ABST
Abstract
Description
METHOD AND MODULE FOR GENERATING VISUAL OR AUDIOVISUAL DATA IN REAL TIME Field of invention
[0001] The present invention relates to the audiovisual field in the broad sense, both as visual representation (design, manipulation and dissemination of digital imagery, design and manipulation of visuals of colors and lights via projection and lighting devices or display screens), as well as as sound representation and expression (manipulation, capture, creation and dissemination of sound flows, whether they are in the order of sound effects, Sound Design, or musical creation in the studio or in public, soloist or concert, DJ, etc.).
[0002] The invention also concerns and touches the field of digital or analog event installation and broadcasting (sound and light); it aims to be a direct bridge between the manufacturing, manipulation, broadcasting of audiovisual multimedia content, and the impact on the public linked to an event organization. It thus particularly touches the field known as VJing, which is a broad term that designates real-time visual performance, which is characterized by the broadcasting of visual content during a musical event.
[0003] Finally, the invention may also concern the creation, manipulation, and multimedia diffusion for the fields of interior or exterior space design, home automation or point-of-sale advertising, as well as the fields of chromotherapy, art therapy, or any form of therapy which would involve visual and sound elements.
[0004] Sound and image have completely invaded our modern lifestyle, and all the corresponding modes of expression and communication which, today, are almost entirely based on two of our senses: sight and hearing.
[0005] The desire to find a correlation between light, color, and sounds related to musical creation is far from new. Isaac Newton, upon his discovery of the decomposition of white light into seven different primitive colors, instinctively associated these seven colors with the seven notes of a musical octave, thus attempting to demonstrate a mental structure underlying these two fields located in human perception. Then it was the German philosopher, physicist, musician, and inventor Athanasius Kircher who more firmly theorized a link between the eye and the ear in his Musurgia Universalis written in 1650. The first plans for a device combining sound and light were made by Louis Bertrand Castel in 1725 through his invention: the ocular harpsichord, which, according to him, made it possible to play a concert to a deaf person with colors and light. However, his invention remained at the blueprint stage and was not built.
[0006] The first real device would not appear until the American inventor Bainbridge Bishop, who filed a patent for a color organ in 1877. It consisted of a set of lights that were attached to a tube organ and projected colors onto a screen depending on the note played. It was then the Englishman Alexander Wallace Rimington who also manufactured and filed a patent for his light keyboard in 1893.
[0007] In the 20th century, with the development of cinema, audiovisual and electronics, new, more advanced systems appeared: video synthesizers. Designed by the most ambitious artists and electronics engineers such as Nam Jun Paik or Steve Rutt and Bill Etra, these devices made it possible to transform source videos according to spatial (width, height, position), temporal (speed, display frequency), or visual (color) parameters, according to the wishes of the artists to obtain interesting abstract visual objects.
[0008] These visual systems would accompany, throughout the 70s and 80s, the emergence of club culture and Disk Jockeys (DJs), until they became an indispensable asset when organizing parties, giving rise to what the videographer Merrill Aldighieri would call Video Jockeys (VJs), a visual counterpoint to DJs, who were responsible for the visual and multimedia atmosphere of the scenes.
[0009] The 1980s also saw a boom in electronic technologies with the advent of microprocessors. The first video synthesizers were then marketed, allowing numerous computer-generated effects to be applied to video sources. Among these devices, the Fairlight Computer Video Instrument (CVI) is notable, which revolutionized the world of television and real-time video editing by allowing high-quality abstract images to be quickly obtained from a source.
[0010] From the 90s onwards, micro-computer technology enabled an explosion of visual design systems, with software such as Photoshop, After Effects, or even Flame and Inferno, driven by the ever more creative demand for Visual Effects in cinema, the generation of artificial figurative or abstract images quickly became an essential communication tool.
[0011] The audiovisual sector is thus seeing the development of disciplines based entirely on the production, animation, and movement of visual content for communication, advertising, or cinema. This is known as "Motion Design." Motion Design (or Motion Graphics) is a specific branch of graphic design, the aim of which is to set graphic elements in motion. Over time, it has become an art form in its own right.
[0012] By adapting these technologies to the world of real-time performance, artists can get a little closer to instant visual creation, combining real-life footage with computer-generated generative art. Among the communities of computer-based visual content creators are DemoScene participants, also known as DemoMakers. These are programmers capable of creating visual and audio elements using as few lines of code as possible. Every year, DemoMaking competitions are held, allowing each team to showcase their visual and audio programming skills and compete to determine the best team.
[0013] The latest major development in visual communication for events was the arrival in the 2000s of the phenomenon of Projection Mapping (or video mapping), which consists of projecting videos onto surfaces such as walls, monuments, or three-dimensional objects, thus giving a dynamic visual dimension to a particular location. Several software programs have emerged, such as MadMapper, HeavyM, Resolume, and Notch. They allow visual content to be broadcast live and distorted to adapt it to surfaces.
[0014] The present invention is directly in line with the aforementioned whole research and practice of an instant audiovisual art form. As a technical audiovisual generative system, it allows for creative expression in the moment via this system, with the possibility of improvisation. State of the art
[0015] Currently, there are three types of audiovisual systems that allow the design of animated multimedia content that can be used directly or aposteriori for real-time broadcasting in an event, exhibition, or stage context: Digital Content Creation (DCC) systems, such as: After Effects, Cinema4D, Blender, Maya or Smode. Stateful Visual Coding systems, most often manifested by a nodal graphical representation (node trees or graphs), such as: PureData, QuartzComposer, TouchDesigner, VVVV, Notch or PraxisLive. Pure programming interfaces: Processing or GLSL with Kodelife.
[0016] Some software combines several aspects and allows, for example, the inclusion of lines of code while remaining content creation or stateful visual programming software.
[0017] Digital content creation tools were originally invented for the creation of digital images in film and television, and their evolution has been based on the evolution of these fields, namely Visual Effects and Motion Design. They are directly inherited from the cinematographic design of images and are therefore based on a model derived from film. The creation of a visual by a digital content creation system therefore begins with the creation of a sequence that will contain the evolution of the visual. Within this sequence, the evolution of the animation will be carried out by "key frames", that is to say by marking in time the different states of the animated objects and by interpolating these states.
[0018] Once the sequence is created, it must be rendered as a video file with an immutable timecode and cannot be changed thereafter. This is therefore a linear production model. Videos can be broadcast, and effects or filters can be applied to them in the delivery systems, but their content is fixed when the sequence is rendered and remains immutable.
[0019] Stateful visual programming systems are lightweight programming tools, where each function is usually represented by a block, and the entire execution of the script is represented by a tree connecting each of the blocks: the graph. As a programming system, they often allow the user great flexibility in the choice of functions used. The creation of a programmed procedural system takes a lot of time, requires knowledge of computers, programming, and electronic equipment if the content is to be broadcast. These systems require designing the scene upstream and then deploying it on the ground. The prior knowledge necessary for their use hinders their democratization within the general public and the artistic community.
[0020] Finally, creative programming languages are reserved for programmers and computer scientists who want to create visuals or generative art directly from lines of code. These languages are capable of interpreting commands in near real-time. This is pure programming, even if it is simplified by the language used.
[0021] Once created, all of this content can be sent to a diffusion or projection mapping system to adapt to the environment. Common diffusion software includes: Resolume, MadMapper or HeavyM. These software programs usually have configurable predefined effects and filters, allow you to mix pre-existing elements (created for example in DCC tools) and apply these filters. These tools also usually allow you to react to external control hardware such as MIDI or OSC instruments, in order to control diffusion and filter behavior.
[0022] If a user wants to share content between all these tools directly (without having to first calculate the video rendering), they need a final software that allows them to share the graphics memory between the different applications. For this purpose, on PC we use Spout, while on Mac we prefer to use Siphon.
[0023] Creating a complete environment for broadcasting and creating multimedia content in a real-time context is therefore a task that requires a great deal of technical expertise, several software programs that must be used and linked together and which, ultimately, will not really allow for improvisation, as they are limited most of the time to content produced according to a linear logic and rendered in the form of an immutable file.
[0024] Current tools do not allow for improvisation or the instantaneous expression of an audiovisual artistic intention due to this linearity.
[0025] The current technical problem of audiovisual is that its current forms of manifestation are subject to a linearity resulting from a top-down manufacturing process: it is necessary to construct a first timeline upstream (called track, sequence or in English timeline), to which the rest of the process will be subject. Whether it is editing, shooting, or animation, all current processes allowing the creation of an audiovisual object with a view to its diffusion in a real-time context, are prisoners of this temporal linearity which cannot be modified once established.
[0026] This linear model is directly inherited from a cinematographic paradigm which consists of seeing film, and by extension video, as a sequence of images; and current systems do not take into account the latest research carried out on non-linear processes.
[0027] The main symptom of this technical limitation to a linear representation is the almost total absence of the possibility of creating directly on the ground or of modifying an audiovisual element once it has been produced, which closes the door to any form of improvisation.
[0028] There is currently no tool that allows for instantaneous visual creative expression in motion. There are audiovisual systems that allow for the development of non-linear visual and sound objects, however these systems are extremely complex and require programming and therefore computer skills and are not readily accessible. Furthermore, once the elements are programmed, they are no longer truly modifiable for improvisation.
[0029] Invention is situated as a bridge between the codes of visual creation and the creative structure naturally open to improvisation that is music. Invention can therefore be seen as an instrument and aims to overcome at least one of the aforementioned drawbacks.
[0030] To this end, according to a first aspect of the invention, a method is proposed for generating an image stream by a calculation unit, each of the images being formed from a plurality of planes, each of the planes having a plurality of objects arranged on said plane, each of the objects arranged on the plane having a plurality of visual and behavioral parameters, the method comprising:a step of assigning, for each of the parameters of the objects:data, called primitives, comprising movement data, rhythm data and intensity data,a step of assigning, for each of the planes:object data comprising a plurality of objects, each of the objects comprising coordinates, called associated, in the plane,data, called primitives, comprising movement data, rhythm data and intensity data,a step of generating the image stream in which,for each of the planes: each of the objects is initially placed at its associated coordinates, the visual and behavioral parameters of each object initially placed on the plane are determined from the assigned primitive data and evolve according to said primitive data, a sequence of movements is applied to each object initially placed on the plane, the sequence of movements being determined from the primitive data of the plane.,
[0031] The method may include other steps of allocation or reallocation subsequent to the step of generating the image stream. The allocation of primitive data to the parameters of an object makes it possible to act on its representation and its behavior, namely for example: its color, its opacity, its size, its rotation angle, its lifetime.
[0032] Preferably, the motion data is generated by the user in real time using a pointing tool.
[0033] Preferably, the intensity data is generated by the user in real time using a pointing tool.
[0034] According to a second aspect of the invention, a module is proposed for generating an image stream, each of the images being formed from a plurality of planes, each of the planes having a plurality of objects arranged on said plane, each of the objects of a plane having a plurality of parameters, the module comprising a calculation unit configured to: allocate, for each of the parameters of the objects: so-called primitive data, comprising movement data, rhythm data and intensity data, allocate, for each of the planes: object data comprising a plurality of objects, each of the objects comprising coordinates, said to be associated with the object, in the plane, so-called primitive data, comprising movement data, rhythm data and intensity data, generate the image stream in which, for each of the planes, each of the objects is initially arranged at its associated coordinates,the visual and behavioral parameters of each object initially placed on the plane being determined from the data of the primitives which have been assigned to them and evolve according to this primitive data. a series of movements is applied to each object initially placed on the plane, the series of movements being determined from the primitive data of the plane., Brief description of the figures
[0035] Other characteristics and advantages of the invention will appear during the reading of the detailed description which follows for the understanding of which one will refer to the appended drawings on which: is a block diagram of an embodiment of a system according to the invention, and illustrates different predetermined intensity profiles recorded in a storage unit, and illustrates the principle of the data of forces, rhythms and movement in the invention as well as their participation in the equation of the movement of the objects. Detailed description of the invention
[0036] The embodiments described below being in no way limiting, it will be possible in particular to consider variants of the invention comprising only a selection of the characteristics described, subsequently isolated from the other characteristics described, if this selection of characteristics is sufficient to confer a technical advantage or to differentiate the invention compared to the state of the prior art. This selection comprises at least one characteristic, preferably functional without structural details, or with only a part of the structural details if this part alone is sufficient to confer a technical advantage or to differentiate the invention compared to the state of the prior art.
[0037] An embodiment of a method P for generating a stream of images by a calculation unit 2 is now described, at the same time as a system 100 according to the invention, integrating a module 1 for generating a stream of images comprising said calculation unit to implement said method.
[0038] Each of the images in the image stream is formed from one or more planes.
[0039] The calculation unit 2 is configured to receive A2, for each of the planes: object data E1 comprising a plurality of objects, each of the objects comprising a plurality of parameters (P1, P2, P3) and coordinates, said to be associated with the object, in the plane, data, said to be primitive data E2, comprising movement data, rhythm data and intensity data.
[0040] The computing unit 2 is configured to receive A1, for each of the parameters of the objects: data, called primitives E2, comprising movement data, rhythm data and intensity data.
[0041] The computing unit 2 is further configured to generate G an image stream E3 in which, for each of the planes: each of the objects is initially placed at its associated coordinates, the visual and behavioral parameters (P1, P2, P3) of each object initially placed on the plane (for example its color, its opacity, its size, its rotation angle, its lifetime) are determined from the data of the primitives which have been assigned to them and evolve according to this primitive data, a series of displacements is applied to each object initially placed on the plane, the series of displacements being determined from the primitive data of the plane.
[0042] In the example shown, module 1 is produced in the form of a touchscreen tablet comprising the calculation unit 2, the control of module 1 being able to be hardware or manual. Intensity data: forces
[0043] In the invention the intensity data are called forces.
[0044] In the artistic sense of the term, we are not considering here a vector form of force, but rather an intensity I which will be impregnated by one or more parameters of objects or plane. The notion of object is defined later.
[0045] A force is a numerical sequence defining an evolution profile as a function of time. This time is discretized according to the classic expression t = nTe, where Te is the sampling period. The smaller the sampling period, the finer the granularity of the profile. In return, the profile has a greater number of points to calculate, implying an increase in calculation times. According to one possibility:
[0046]
[0047] Force is by nature periodic, but one can imagine cases where it would vanish after a single application.
[0048] The force profile is therefore defined over exactly one period T = NTe. Without loss of generality, it is possible to arbitrarily set the duration of the period T to 1 minute (this choice is linked to the unit of rhythm which will be discussed in the next paragraph). Thus, by default, all force profiles have:
[0049] points
[0050] that is to say in memory an array of 600 single precision floating numbers.
[0051] The computing unit can be configured to implement a predetermined force profile stored in a storage unit.
[0052] The predetermined force profile is for example a sinusoidal profile, referenced f1 on. This is an oscillating profile. The mathematical expression is given by:
[0053]
[0054] The sine wave profile could have been sin instead of cos, but the advantage of the latter is that it starts at 1 (whereas sin starts at 0), which has some advantages in terms of synchronization with the rhythm of the music.
[0055] The force profile is for example a logarithmic profile, referenced f2 on. It is a "pulsating" profile, with fairly strong amplitudes at the beginning of the period, but for a short duration, followed by a phase of quasi-linear decrease to a zero value. The mathematical expression is given by:
[0056]
[0057] The predetermined force profile is, for example, an exponential profile, referenced f3 on. This is an increasing profile, starting from a unit amplitude and culminating fairly quickly at the largest of the proposed amplitudes. The mathematical expression is given by:
[0058]
[0059] It is possible to play on the “acceleration” of the curve by adjusting the coefficient 3 / 2.
[0060] The force profile is, for example, a stepped profile, referenced f4 on. This is an "all or nothing" type profile, with an abrupt transition zone in the middle of the period. The mathematical expression is given by:
[0061]
[0062] The invention also allows the creation of personalized forces, not derived from mathematical expressions, but directly determined by the user by means of moving a tool on a touch screen, the tool being able to be the user's finger. Rhythm data
[0063] In the previous paragraph, we introduced the time variable t. This time does not necessarily correspond to the time that elapses in reality.
[0064] If one wishes to modify the frequency of the oscillations, the natural way to do it would be to reduce it to and want to change the frequency by applying a coefficient to it. This view does not apply here. Indeed, the time t associated with the force always covers the interval [0; T]. Modifying the formula would lead to constructing either a truncated sinusoid or a repeated pattern, but not necessarily a whole number of times, which is an undesirable result in both cases.
[0065] The invention proposes to introduce rhythm data B. The rhythm, whose unit is BPM (for the English beats per minute), determines in the model the number of times the force profile is covered in one minute. Thus, for a rhythm of 1 BPM, the profile is covered 1 time, and 1 minute elapses. This is the only case where the apparent time coincides with the absolute time. For a rhythm of 100 BPM, the force profile is covered 100 times per minute. The apparent time, also called frequency time (it is no longer homogeneous to seconds), therefore elapses 100 times faster than the absolute time. If we note the value of the rhythm, we therefore have:
[0066]
[0067] To change the frequency of the oscillations, simply change the rhythm value (for example, double the rhythm to double the frequency of the oscillations).
[0068] It is possible to establish a correspondence between the time being measured and the corresponding index of the cell in the force table, for the force being evaluated, subject to the chosen rhythm. The origin of the times is set at the start of the application. We call the current absolute instant modulo T:
[0069]
[0070] The index sought is none other than:
[0071]
[0072] Suppose the actual elapsed time t is in milliseconds, then the expression becomes:
[0073]
[0074] Considering an offset over time, the final expression of the index n is therefore:
[0075]
[0076] The computing unit may be configured to implement a predetermined rate stored in a storage unit.
[0077] The invention also allows the creation of personalized rhythms, directly determined by the user using a tool on a touch screen, the tool being able to be the user's finger. Motion Data: Vector Fields
[0078] The computing unit is configured to apply a displacement to the center of each object, identified by its coordinates . Thus, at any point in space we make a displacement vector V correspond forming a field:
[0079]
[0080] If, at time t, the coordinates of the center of an object are , so right now , the new coordinates of the center become:
[0081]
[0082] is called the refresh period. It is the time that elapses between the display of 2 consecutive images. It is therefore the inverse of the refresh rate, called FPS (for English frames per second). Without loss of generality, it is proposed to arbitrarily set a reference duration for the refresh period at 40 milliseconds: this choice corresponds to a value of 25 FPS, a usual value in the audiovisual field. However, the 1st generation module can be set according to a preferred range of 10 FPS to 100 FPS.
[0083] A constant is introduced in the previous formula, rewritten in a simplified way:
[0084]
[0085] When , the images are refreshed at a frequency twice as large as the frequency of reference.
[0086] Another constant is introduced to constrain the movements:
[0087]
[0088] Other values of the constant σ are possible, such as 0.01 or 0.02.
[0089] By incorporating the force (displacement intensity) applied to the object, the displacement expression is written:
[0090]
[0091] The space is discretized according to a number of points , for example according to a value L of points.
[0092] The computing unit may be configured to implement a predetermined vector field stored in a storage unit.
[0093] The predetermined vector field is for example a constant field, whose mathematical expression is given by:
[0094]
[0095] The objects are then moved in a straight line. It is also possible to play with the angle of the trajectory, with for example in the case above .
[0096] The predetermined vector field is for example a wave field, whose mathematical expression can be given by:
[0097]
[0098] The objects are then moved horizontally to the right (the value 3 is to be adjusted according to the desired speed and its sign according to the desired direction), while oscillating slightly vertically.
[0099] The predetermined vector field is for example a circular field, whose mathematical expression can be given by:
[0100]
[0101] Objects move concentrically, counterclockwise. The radius of the circular path is larger the further the object is placed from the center.
[0102] The predetermined vector field is for example a spiral field, the mathematical expression of which can be given by:
[0103]
[0104] Objects move concentrically, counterclockwise. They move further and further away from the center as they move.
[0105] The predetermined vector field is for example a trigonometric field, whose mathematical expression can be given by:
[0106]
[0107] The invention also allows the creation of personalized fields, not derived from mathematical expressions, but directly determined by the user by means of moving a tool on a touch screen, the tool being able to be the user's finger. Object data
[0108] There are four categories of objects: multimedia content, for asset, launchers, for launcher, behaviors, for behavior, and plans.
[0109] Assets are objects placed on a plane, having internal parameters, these parameters can be visual or behavioral, such as position, rotation angle, opacity, color, lifetime, or any other parameter programmed inside the object to define its representation, behavior or appearance. The values of the asset parameters are determined: either by the data of the primitives that have been assigned to them; or statically.
[0110] Assets move according to the movement determined by the primitive data of the plane on which they are placed. They can be either elements: of a visual nature such as bitmaps (.bmp, .jpg, .png images or animated .gif images or .mp4, .avi videos) or procedural entities (drawn by code instructions); of a sound nature such as audio streams (.wav, .mp3, .ogg sounds or sounds broadcast by streaming or microphone) or procedural entities (played by code instructions).
[0111] Launchers are virtual objects placed on the map. Launchers have their own primitives, independent of those of the map on which they are placed. Thus, a launcher can move without connection to the map, and place the desired type of object on the map at regular time intervals. Thus, a launcher can, for example, periodically drop either multimedia content or another launcher. In order to know how to move, the launcher receives 3 primitives: force, rhythm, movement (if omitted, the launcher will remain immobile). In order to know at what interval to drop its object, the launcher receives 1 primitive: rhythm (mandatory).
[0112] Behaviors are virtual objects that can be applied to one (or more) planes or one (or more) objects. A behavior is any change in size, color, rotation, scale, opacity, or any other scripted behavior (described by code instructions). In order to know which transformation to apply, the behavior can expose inputs to receive primitives: force, rhythm, or motion (if force is constant, or force or rhythm is omitted, the behavior will adopt the default values).
[0113] The visual composition results from a multitude of objects whose parameters evolve according to the data of the primitives assigned to them. A plane is a layer, that is to say a display surface with a transparent background, capable of receiving objects moving according to the primitives assigned to the plane. The final composition is made up of the superposition of any number of planes, from the most distant (background), to the closest. The final composition can also be distributed over several rendering windows. Each rendering window then broadcasts all or part of the worked planes. Sequencer
[0114] A sequencer allows you to emulate primitives in a composite way. The type of the sequencer is determined by the type of the first primitive inserted into it. Once the type is fixed, only primitives of the same type can be inserted into it. The sequencer becomes in turn (in a loop or in a single application) each of the primitives constituting it, either successively, randomly, or according to a predetermined pattern.
[0115] Note: in order to know at what rate it must mutate, the sequencer receives 1 primitive: rhythm (mandatory).
[0116] For example, if we want to create a composite force with a rising (increasing) action, a plateau (constant) action and a falling (decreasing) action, all in a periodic manner and where each action lasts 2 seconds, we just need to create a sequencer in loop mode and of type force (in which we will insert the 3 increasing / constant / decreasing forces) receiving as input a rhythm of 30 BPM. Real-time audiovisual instrument
[0117] An embodiment of the invention may be compiled software, capable of running on a computer or a touchscreen tablet. This software embeds and implements the method described in the invention, this software also being called an instrument whose user is called artist A.
[0118] The instrument has in particular: a system for managing forces, rhythms and movements; a system for managing plans; a system for managing objects and their parameters; a composition space; a library of assets allowing them to be managed, manipulated, sorted and ordered.
[0119] The tool allows the artist to create his work on a working window and distribute it across a plurality of rendering windows (the content of which may vary from one window to another).
[0120] Custom motion fields by “painting”
[0121] In an alternative embodiment of the invention, the motion fields are no longer necessarily derived from mathematical equations, but can be directly traced by the user using a pointing tool, such as their finger on a touch screen, or otherwise such as a mouse.
[0122] The notations used in this paragraph are as follows: Coordinates of an anchor point, the point initially pointed to by the pointing tool: Coordinates of a current point, pointed by the pointing tool:
[0123] Gradient tools
[0124] By implementing this tool, the artist can indirectly define a dividing line, around which vectors orthogonal to it and of attenuated standards according to its distance will be organized.
[0125] The anchor point and the current point are sufficient to define a straight line. We want to determine the equation of the line that is orthogonal to it, and that passes through the anchor point. Knowing that the product of the slope coefficients of two orthogonal lines is –1, that of the desired dividing line is therefore:
[0126]
[0127] The coordinates of the anchor point must verify the equation of the dividing line, so we can deduce that the ordinate at the origin is:
[0128]
[0129] The field that we wish to paint will contain vectors orthogonal to this line (therefore collinear with that drawn by the artist) and whose norm will be unitary when they are in contact, then all the weaker as their point of application is distant and the length of the segment drawn by the artist is short.
[0130] The distance between the line and the point of application is given by:
[0131]
[0132] The length of the segment drawn by the artist is:
[0133]
[0134] Condition to respect collinearity: Y=— X / a because And
[0135] Condition to respect an exponential decrease as a function of distance: .
[0136] We can therefore solve the system:
[0137]
[0138] Finally the expression of the vector field sought is:
[0139]
[0140] To obtain vectors only on the correct side of the dividing line, simply ensure that .
[0141] An empirical constant is introduced solely for the purpose of improving the artistic experience. In the source code, the value retained is .
[0142] Brush tool
[0143] Using this tool, the artist can directly imbue the vector field with the movement of the pointing tool. The speed of movement of the brush (i.e. the mouse) will reflect the intensity of the field at the point in question.
[0144] There is no need for an anchor point for this tool.
[0145] In one example, the artist works on a 21x21 grid while the number of pixels on the screen can reach 1920x1080. Since the number of points in the vector field is small compared to the number of pixels over which the brush can actually pass, the idea is not to simply paint the points in the field closest to those hovered over, but to paint them all, with an intensity that is lower the further they are from the brush stroke.
[0146] The distance between the current point and the application point is given by:
[0147]
[0148] If And characterize the position of the brush at the moment , then their respective derivatives characterize its speed at the same instant.
[0149] Condition to respect the link between intensity and speed:
[0150]
[0151] The notion of a continuous-time derivative translates to a simple difference (between 2 consecutive values) in discrete time.
[0152] Condition to respect an exponential decrease with respect to the distance:
[0153]
[0154] Finally the expression of the vector field sought is:
[0155]
[0156] Here again, the value of the constant is determined empirically, with the sole objective of improving the artistic experience. In practice, a value that can be retained is .
[0157] Radial tool
[0158] Using this tool, the artist can draw a circle inside which a Newtonian field will be established, consisting of centrifugal (or centripetal) vectors of norms attenuated according to their distance, following the so-called "inverse square" law. Thus, each time we move away from the center of the circle by a factor of 2, the intensity of the field is divided by 4.
[0159] We also want to involve the radius of the circle in the field intensity: the larger the radius, the more the norm of the vectors will be increased.
[0160] The anchor point is the center of the circle. The distance between the current point and the anchor point is the radius of the circle:
[0161]
[0162] The distance between the application point and the anchor point is:
[0163]
[0164] Condition to respect the link between intensity and radius:
[0165]
[0166] Condition for respecting the centrifugal (or centripetal) direction relative to the anchor point:
[0167]
[0168] Condition to respect a quadratic decrease with respect to the distance:
[0169] We can therefore solve:
[0170]
[0171] Finally the expression of the vector field sought is:
[0172]
[0173] The value of the constant that can be used is .
[0174] Magnus Tool
[0175] Using this tool, the artist can define a zone of turbulence inspired by the "Magnus effect" in fluid mechanics. The latter highlights the tangential force experienced by a rotating object moving in a fluid. It is this force that explains the change in trajectory, which then takes on a curved shape.
[0176] This tool is therefore intended to be used over a constant field, for example, in order to asymmetrically modify the velocity field around the object.
[0177] A NaN field, for Not a Number, is imposed inside the turbulence zone, so that no objects can exist there.
[0178] The anchor point is the center of the turbulence zone. The distance between the current point and the anchor point is the radius of the turbulence zone:
[0179]
[0180] We will then use the angle between the current point and the anchor point relative to the horizontal to play on the direction of the depression:
[0181]
[0182] We decide to place ourselves in a polar coordinate system whose origin is the center of the turbulence zone:
[0183] And
[0184] The literature in fluid mechanics teaches that, for a constant horizontal resting velocity field of amplitude V, the perturbed field is written in the coordinate system defined above as:
[0185]
[0186] The sign and magnitude of the constant G are related to the pressure difference in the fluid on either side of the turbulence zone.
[0187] According to the invention, the constant and horizontal field is replaced by the average field inside the turbulence zone, before the step where it is fixed to NaN.
[0188] Noting respectively And the amplitude and direction of this mean field, the modified equations for the perturbed field are:
[0189]
[0190] The calculations to obtain these expressions are relatively classic and have therefore not been detailed in this description. Returning to Cartesian coordinates:
[0191]
[0192] The retained value can be .
[0193] Displace tool
[0194] Using this tool, the artist can overlay regular ripples on top of an existing field, stretching with varying intensity in a direction that would typically be orthogonal to the main field.
[0195] The anchor point is a wave antinode, but it is actually of little importance because the generated "waves" will extend across the entire plane. The distance between the current point and the anchor point corresponds to the stretched segment:
[0196]
[0197] To simplify, we initially consider the case of a horizontal main field and a vertical stretch.
[0198] Condition to respect the link between intensity and segment size:
[0199] Condition for generating regular vertical waves: from where
[0200] We must now generalize to any orientation. To do this, we will consider that we will always have a vertical undulation, but in a frame rotated by an angle :
[0201] The expression of the required vector field is:
[0202]
[0203] The constant can be equal to .
[0204] Twirl tool, for English twirl
[0205] Using this tool, the artist can create circles, spirals and swirls, either internal or external.
[0206] A NaN (Not a Number) field will be imposed in the center of the twirl, so that no objects can exist there.
[0207] The anchor point is the center of the twirl. The distance between the current point and the anchor point corresponds to the power of the twirl:
[0208]
[0209] We will then use the angle between the current point and the anchor point relative to the vertical to play on the inclination of the twirl:
[0210]
[0211] Changing the tilt allows the artist to create very different visual effects:Zero tilt: radial effectAngular increase: spiral effect (external)Critical point: circular effectAngular increase: spiral effect (internal)
[0212] Two special cases are therefore easily recognizable:When , the field is radial When , the field is spiral / circular
[0213] We intuit the following trigonometric expressions (weighted by intensity):
[0214]
[0215] The value of the constant can be .
[0216] Field combination
[0217] Only the equations of individual fields have been discussed so far. But the artist has the possibility of drawing several movements in succession. For example, a radial field , then two brush strokes And , ending with a gradient .
[0218] The resulting field is simply the sum of the individual fields.
[0219] For N movements drawn by the artist, this is therefore written:
[0220] Personalized forces by “engraving”
[0221] In an alternative embodiment of the invention, the forces are no longer necessarily derived from equations but can be directly traced by the artist.
[0222] Some examples of profiles have been given previously. But the artist may wish to use more complex and / or irregular profiles. In all cases, the idea is to feel the evolution of a "tension" according to the time and rhythm of the music, then to "engrave" what results from the artistic will that will have given birth to it through this gesture.
[0223] In the analog world, what best translates this phenomenon is a wire or a rope that is stretched more or less according to the intensity that one wants to apply. In the instrument, a circle is proposed with a reference radius R(0), its radius R can be modified at any time t by a pointing tool moved by the user (for example one of his fingers): the larger the radius of the current circle R(t), the stronger the intensity and conversely, the smaller the radius of the current circle R(t), the weaker the intensity.
[0224] At each instant, the intensity of the force (engraved value) will be calculated as the ratio between the current radius R(t) and the reference radius R(0):
[0225]
[0226] Of course, we can have force values less than 1 and conversely, if we want very large force values, it is enough to have a small reference circle.
[0227] A dotted dividing line is automatically drawn as soon as the artist places their finger. Crossing this line instantly reverses the force polarity for the values engraved after that moment. This allows for the generation of a negative force.
[0228] Finally, it should be noted that this engraving method de facto requires that the first point of the force is always equal to 1, which does not necessarily correspond to the artist's wishes. The instrument is configured to offer a cropping system which allows, at the end of the engraving, to adjust the start and end limits of the profile actually rendered. Decentralized display system
[0229] In an alternative embodiment of the invention, the calculations for the diffusion of the rendering windows can be transferred to boxes distributed at different points in the space (room(s) or exterior). Each box can then be connected to at least one diffusion system associated with a rendering window. The diffusion systems 102 can be diverse: a computer screen, a television, a video projector, a screen wall. The instrument as a hardware console
[0230] In an alternative embodiment of the invention, the software gives way to a partially or entirely hardware control console.
[0231] The elements constituting it can be (non-exhaustive list) touch screens, sliders, potentiometers, touchpads or more generally any accessory traditionally used by DJs / VJs. Remote control
[0232] In an alternative embodiment of the invention, the system can be controlled remotely via the Internet, in order to ensure its use off-site as part of an event service, or its maintenance as part of a dedicated installation. Projection mapping
[0233] In an alternative embodiment of the invention, the rendering windows transmitted to the broadcast systems can undergo a transformation known as "4-corner deformation" in order to be able to be projected onto volumes or relief structures. Video mapping thus makes it possible to adhere as closely as possible to the chosen locations. Transition to 3D
[0234] In an alternative embodiment of the invention, the motion fields and drawn objects have an additional dimension z in addition to x and y. This makes it possible to create a feeling of relief in the visual compositions.
[0235] Of course, the invention is not limited to the examples just described and many adjustments can be made to these examples without departing from the scope of the invention. In addition, the various features, forms, variants and embodiments of the invention can be combined with each other in various combinations to the extent that they are not incompatible or mutually exclusive.
Claims
Method (P) for generating an image stream by a calculation unit, each of the images being formed from a plurality of planes, each of the planes having a plurality of objects (O1, O2) arranged on said plane, each of the objects of a plane having a plurality of parameters (P1, P2, P3), the method comprising: a step of attributing (A1), for each of the parameters of the objects, so-called primitive data (E2), comprising movement data, rhythm data and intensity data, a step of attributing (A2), for each of the planes: object data (E1) comprising a plurality of objects, each of the objects having coordinates, said to be associated with the object, in the plane, so-called primitive data (E2), comprising movement data, rhythm data and intensity data, a step of generating (G) the image stream (E3) in which, for each of the planes, each of the objects is initially arranged at its associated coordinates,the visual and behavioral parameters (P1, P2, P3) of each object initially placed on the plane are determined from said assigned primitive data and evolve according to this primitive data. a sequence of displacements is applied to each object initially placed on the plane, the sequence of displacements being determined from a primitive of vector field type whose intensity is given by the value of an intensity type primitive obtained at a given instant as a function of the period of a rhythm type primitive, the displacement expression being able to be written:, Or is a refresh constant, an intensity data at a time t determined as a function of the period of a rhythm data, a displacement constraint constant. Method according to claim 1, comprising, prior to the allocation step A1: a step of generating: a plurality of movement data, directly traced by a user in real time by means of a painting pointing tool, a plurality of rhythm data by second pointing tools, a plurality of intensity data, directly traced by the user by means of an engraving pointing tool, the engraving being carried out by moving the pointing tool determining the radius of a circle, the intensity data being calculated as the ratio between a current radius R(t) and a reference radius R(0) of this circle. Module (1) for generating an image stream, each of the images being formed from a plurality of planes, each of the planes having a plurality of objects (O1, O2) arranged on said plane, each of the objects of a plane having a plurality of parameters (P1, P2, P3), the module comprising a calculation unit (2) configured to: allocate (A1), for each of the parameters of the objects: so-called primitive data (E2), comprising movement data, rhythm data and intensity data, allocate (A2), for each of the planes: object data (E1) comprising a plurality of objects, each of the objects having coordinates, said to be associated with the object, in the plane, so-called primitive data (E2), comprising movement data, rhythm data and intensity data, generate the image stream (E3) in which, for each of the planes, each of the objects is initially arranged at its associated coordinates,the visual and behavioral parameters (P1, P2, P3) of each object initially placed on the plane are determined from said primitive data which have been assigned to them and evolve according to these primitive data, a sequence of displacements is applied to each object initially placed on the plane, the sequence of displacements being determined from a primitive of the vector field type whose intensity is given by the value of an intensity type primitive obtained at a given instant as a function of the period of a rhythm type primitive, the displacement expression being able to be written:, Or is a constant refreshment, an intensity data at a time t determined as a function of the period of a rhythm data, a constant of displacement constraints.