text:
International Journal of Computer Games Technology
Volume 2014, Article ID 623809, 12 pages
Desirable Elements for a Particle System Interface
Department of Computer Science, University of Regina, Regina, SK, Canada S4S 0A2
Received 11 September 2013; Accepted 29 October 2013; Published 5 January 2014
Academic Editor: Ali Arya
Copyright © 2014 Daniel Schroeder and Howard J. Hamilton. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
Particle systems have many applications, with the most popular being to produce special effects in video games and films. To permit particle systems to be created quickly and easily, Particle System Interfaces (PSIs) have been developed. A PSI is a piece of software designed to perform common tasks related to particle systems for clients, while providing them with a set of parameters whose values can be adjusted to create different particle systems. Most PSIs are inflexible, and when clients require functionality that is not supported by the PSI they are using, they are forced to either find another PSI that meets their requirements or, more commonly, create their own particle system or PSI from scratch. This paper presents three original contributions. First, it identifies 18 features that a PSI should provide in order to be capable of creating diverse effects. If these features are implemented in a PSI, clients will be more likely to be able to accomplish all desired effects related to particle systems with one PSI. Secondly, it introduces a novel use of events to determine, at run time, which particle system code to execute in each frame. Thirdly, it describes a software architecture called the Dynamic Particle System Framework (DPSF). Simulation results show that DPSF possesses all 18 desirable features.
1. Introduction
A particle system is a structure used to control the behavior of many elements called particles, where a particle is an object with some properties such as position, velocity, and size. Particle systems are typically implemented in software, and each particle is visualized on screen as a colored pixel, a texture (i.e., an image), or a polygon. Particle systems are widely used in video games and films to generate special effects and model fuzzy objects that do not have well-defined shapes, such as fire, smoke, flowing liquids, dust, clouds, fog, snow, rain, hair, fur, sparks, explosions, and abstract visual effects such as magic spells and glowing trails. These effects help immerse viewers in virtual environments by adding detail to them, as well as by making them more attractive. In addition to creating special effects, particle systems have many practical and research applications, such as visualizing and controlling implicit surfaces [1–6] and mesh deformation [5, 7].
When creating a particle system, a number of issues confront the client, where the client is the person creating the particle system, such as a designer or programmer. These issues include deciding how the particles should be drawn, how the particles should be managed in memory for efficient performance, which properties the particle system and its particles should have, and how algorithms should be coded for common particle system operations, such as updating the position of a particle according to its velocity.
To avoid dealing with these issues, every time a new particle system is required, Particle System Interfaces have been developed to assist clients with creating particle systems. A Particle System Interface (PSI) is a piece of software designed to perform common tasks related to particle systems for clients, while providing them with a set of parameters whose values can be adjusted to create different particle systems. PSIs allow clients to quickly create particle systems, which in turn produce new effects. By using a PSI, clients can also avoid having to design and implement the particle systems themselves. Instead, clients simply use the interface of the PSI to create particle systems and run simulations, which avoids issues such as how particles should be drawn and how they should be managed in memory. Additional terminology related to PSIs is described in Section 2.
A PSI is typically either interactive software with a Graphical User Interface (GUI), a set of related code that can be added to a client program, or a software library with an Application Program Interface (API). Although many PSIs exist that can be used to create great visual effects, most PSIs are only useful for creating specific types of effects and are not easily extended. For example, the Particles [8] and Particle 3D [9] PSIs are capable of producing impressive fire and explosion effects, but they are not designed to handle collisions between particles and the virtual environment. Therefore, they are not suited to producing effects such as water cascading down over multiple surfaces or smoke from a fire accumulating near the ceiling in an enclosed area. If clients require some functionality that is not supported by a PSI, such as particle-environment interactions, they must either find another PSI that meets their requirements or create their own particle system or PSI. Unless the effect that the client is trying to create is simple or common, he or she will most likely have to create a particle system or PSI from scratch.
The goal of our research was to design, implement, and evaluate a software framework that is flexible enough to support creating particle systems for diverse applications while making the process of creating particle systems fast and easy for clients. This paper makes three original contributions to research. The first original contribution, as described in Section 3, is the identification of 18 features that are appropriate for a PSI capable of creating a wide variety of effects. A PSI with all these features should be applicable to the great majority of applications that require particle systems. Clients will likely be able to use such a PSI to meet their requirements while leveraging the functionality already present in the PSI, which can potentially save a significant amount of effort. Existing PSIs are evaluated with respect to these 18 desirable features in Section 4.
The second original contribution, as described in Section 5, is the idea of using events to determine when code for updating particles and particle systems should be executed. The event approach has three advantages over the traditional approaches of either using Boolean values to determine whether or not specific code should be executed or setting a parameter to a specific value, so that it does not affect the output. First, using events can increase performance since they avoid unnecessarily executing code. Secondly, using events can increase modularity by making it easier for clients to add or remove code. Thirdly, because events can be added or removed at run time, particle and particle system behavior can easily be changed at run time.
The third original contribution, as described in Section 6, is the Dynamic Particle System Framework (DPSF) software, which provides the 18 features mentioned above. DPSF was developed to help clients create PSIs. Rather than starting from scratch, clients can build upon DPSF to create PSIs, allowing them to avoid implementing common particle system tasks, such as managing particles in memory, while still being able to program desired functionality into the PSI. The experimental results and the Demo software, as described in Section 7, show that DPSF can be used for applications that other PSIs cannot. The results of experiments conducted with the Demo software, reported elsewhere [10], also show that DPSF runs fast enough to be used for interactive applications, such as video games. By integrating features from other existing PSIs into a single framework, DPSF enables the creation of visual effects that are qualitatively different from those possible with other PSIs. These features make using DPSF suitable for a wide variety of applications that require a particle system.
2. Terminology
This section defines terminology relevant to particles, particle systems, and PSIs. Particle properties are properties possessed by every particle in a particle system. Such properties are used to control a particle's behavior. Some typical particle properties are position, velocity, color, size, and lifetime (how long the particle should remain active). Particles that have an elapsed time less than their lifetime are referred to as active particles; all other particles are referred to as inactive particles. Particle update functions are functions that update the values of a particle's properties, such as by updating a particle's position according to its velocity. Particle system properties are properties of the particle system itself and are typically used to control the particle system as a whole. Examples of particle system properties include the maximum number of particles that can exist in the particle system, the rate at which particles are added to the particle system, and the magnitude of an external force that affects the trajectories of all particles in the particle system. Particle system update functions are functions that update the particle system's properties, such as by changing the rate at which particles are added. Particle and particle system properties are collectively referred to as Particle System Interface properties (PSI properties), and particle and particle system update functions are collectively referred to as Particle System Interface update functions (PSI update functions).
A Particle System Interface parameter (PSI parameter) is a parameter provided by a PSI whose value can be adjusted by clients to affect the behavior or visualization of the particle system and its particles. When a PSI parameter value is changed, it changes the value of one or more PSI properties, or changes the way that the PSI properties are updated internally by the particle system, causing a new particle system to be produced. PSI parameter values are typically specified by clients through code, a script, or a visual tool. Examples of common PSI parameters include the lifetime, initial position, and initial velocity of particles added to the particle system and the texture used to draw the particles. By allowing clients to set different values for the PSI parameters, many different particle systems can be created from a single PSI.
Figure 1 shows the relationship between a PSI, a particle system, and a visual effect. An example of a PSI is shown at the top of Figure 1. It provides functions to add, update, and draw particles; the particle properties called elapsed time, lifetime, position, and velocity which every particle will have; a particle system property called texture, which is used to draw the particles; and PSI parameters to set the lifetime, initial position, initial velocity, and texture of the particles. Below the PSIs in Figure 1 are examples of two particle systems created from the PSI. Each of the Fire and Smoke particle systems was created by specifying values for the PSI parameters. When particle system simulations run, they create effects, where an effect is the overall perception of the individual particles of the particle system. When an effect is visualized, such as by being shown on screen, it is referred to as a visual effect. Three visual effects created from the Fire and Smoke particle systems are shown at the bottom of Figure 1.
3. Desirable PSI Features
While many published works describe applications of particle systems, few describe the components that a PSI should possess in order to be suitable for many applications. Reeves [11] and van der Burg [12] identified the following desirable PSI properties: lifetime, velocity, and color for the particles, having a particle system texture, and external force. Identifying the desirable features of a PSI facilitates evaluation of PSIs. Arguably, a PSI is more likely to meet clients' requirements if it has a greater number of these desirable features.
A PSI flexible enough to support creating a wide range of diverse effects should offer the following features, which are discussed in more detail below.(F1)Provide a method to add and update particles.(F2)Provide some built-in PSI properties.(F3)Provide PSI parameters to specify values for built-in PSI properties.(F4)Provide a method to draw the particles.(F5)Provide a method for inspecting the active particles in the particle system.(F6)Allow clients to create PSI properties.(F7)Allow clients to specify how the new PSI properties are updated each frame, and how they affect other PSI properties.(F8)Allow clients to create PSI parameters.(F9)Allow updates to be made when a particle condition is met.(F10)Allow updates to be made when a particle system condition is met.(F11)Allow particles to be affected by objects and forces in the virtual environment.(F12)Allow particles to be affected by other particles in the same particle system.(F13)Allow PSI parameters to be updated at run time by software events.(F14)Allow PSI parameters to be updated at run time by user input, enabling real-time interaction with the particle system.(F15)Allow PSI parameters to update the properties of active particles.(F16)Allow PSI parameters to affect a subset of the active particles.(F17)Provide support for animated particles.(F18)Provide support to use multiple particle images in a particle system.
Adding new particles to the particle system and updating existing particles (F1) are essential particle system tasks. Ways to perform these tasks are apparently always included in a PSI. Also, every PSI apparently provides some built-in particle and particle system properties (F2), but the number and types of PSI properties that they provide may differ. Having more PSI properties typically allows clients to define more detailed particle behaviors and create a wider range of effects.
A PSI property is only useful for creating diverse effects if the client is able to change its value. A PSI property's value can be changed by clients through the use of a PSI parameter (F3). For example, a particle system might emit particles at a rate corresponding to a ParticlesPerSecond particle system property. If the value of this property cannot be changed by clients, then they will not be able to use it to create a new effect. However, if clients are able to change the value of the ParticlesPerSecond property using a PSI parameter, then they will be able to create several different effects by adjusting that value. If a PSI provides more PSI parameters, clients will have more options available to them, which allows them to create more diverse effects.
Many particle system applications require visualizing the effect on screen, so providing a function to draw the particles (F4) can be very useful for allowing clients to visualize their effects with minimal effort. To allow clients to display their effects in a variety of ways, the PSI should also provide a function or property that allows clients to iterate through all of the active particles in the particle system and inspect their property values (F5). For example, if clients want to visualize their effect in a custom manner, such as by forming a mesh where particles correspond to vertices in the mesh and these vertices are connected by lines, they will likely be able to accomplish this by iterating over the particles but not by using the PSI's built-in drawing function. Providing feature F5 also has the benefit of allowing clients to collect information about the particles during the simulation, such as by tracking the positions of the particles over time or recording other information about them.
While there is a general set of PSI properties that are required to create many common effects, it is impossible to provide every property that a client may potentially require. Thus, it can be beneficial to allow clients to create their own PSI properties (F6). For example, if clients want their particles to each have an Orientation property, and it is not provided by the PSI, they could add it as a new particle property. This property would allow each particle to be oriented differently. Unless the values of the properties that clients create are intended to be constant and do not affect other properties, clients will also require the ability to define how the new PSI properties are updated and the effects, if any, that they have on the other PSI properties (F7). For example, clients may decide that they want the Orientation property of a particle to change based on a rotational velocity. In this case, they need to create a RotationalVelocity particle property and define how it affects the Orientation property (e.g., Orientation += RotationalVelocity ElapsedTime). Similarly, if clients want the velocities of particles to be affected by acceleration or friction, they need to define these new properties and specify how they affect the Velocity particle property. In addition to creating new PSI properties and defining how they are updated, clients will likely require the ability to specify values for these properties. This means that clients should also be able to create PSI parameters (F8) in order to specify values for the new PSI properties.
While particle systems are generally stochastic in nature, they are often intended to follow some general pattern of behavior. More complex patterns of behavior can be created by allowing updates to be triggered when specific particle conditions are met (F9). For example, clients may want each particle to randomly change its direction when half of its lifetime has elapsed or to change colors when it reaches a certain speed. Alternatively, they may want a counter to be incremented every time a particle collides with a specific object. Similarly, allowing updates to be triggered when specific particle system conditions are met (F10) can also allow more complex effects to be created. For example, clients might want the color of new particles to change after 1000 particles have been emitted from the particle system or to apply a gravitational force to all particles after the particle system has existed for 10 seconds. Being able to trigger updates according to internal particle and particle system conditions as well as specifying the updates that should be performed can allow clients to conveniently define deterministic aspects of particle system behavior and thus create more complex effects.
Providing a particle system with information about the surrounding virtual environment can allow particles to react to objects or forces in this environment (F11), which can enhance realism. For example, if a particle system in a video game is emitting sparks, it may be desirable to have the sparks bounce off the walls and floor in the virtual environment of the game instead of passing through them. A virtual environment is dynamic if it contains objects with properties that are updated at run time. Having particles that react to dynamic virtual environments can further increase the realism of an effect. Similarly, clients may want particles to be affected by other particles in the particle system (F12), such as by having particles collide instead of passing through one another. Because these operations can be computationally expensive to perform, a client is unlikely to use them frequently, but they should be available.
In addition to particle systems reacting to the environment, it can be beneficial to have them reacting to software events. Therefore, PSI parameters should be responsive to software events at run time (F13), where a software event is triggered by something in the software that is external to the virtual environment. For example, clients may want the particle system to emit particles of a different color when the user accomplishes some goal, such as collecting 100 coins or achieving a mission objective. Also desirable is the ability to update PSI parameters at run time according to user input (F14). This feature allows for real-time interaction between users and the particle system and has many potential applications. For example, it could be used to allow users to control a fire-hose particle system, where they spray water at fires to put them out. Real-time interaction with particle systems at the particle level can also be achieved by allowing PSI parameters to affect the properties of active particles (F15), rather than only affecting the properties of particles added to the particle system after the PSI parameter value has been updated. Being able to change the properties of active particles at run time allows particle behavior to be updated at run time. For example, a particle system may initially emit particles that are attracted to some object. Clients may want the particles to change behavior and be repelled from the object when specific user input is received. By allowing the properties of active particles to be updated, this type of behavior can be achieved.
In addition to updating active particle properties, clients may want to change the behavior of only some of the active particles in the particle system. For example, when specific user input is received, clients may want to change the color of only 100 random particles or only the particles that meet some criteria, such as having a velocity greater than 100 or being within a certain distance of another object. For these cases, PSI parameters should be able to update a subset of the active particles (F16).
In order to create certain effects, clients may require the individual particles to be animated (F17). For example, clients may want to create a particle system representing hundreds of butterflies, where each butterfly is flapping its wings. Similarly, clients may want a particle system to display its particles using several different images (F18). For example, clients may want to simulate a tornado picking up many different objects, such as rocks, sticks, and clumps of dirt. In order for these different objects to be visualized properly, the particle system would need to support displaying its particles with multiple images.
The 18 features listed above are neither exhaustive nor independent. They are not exhaustive because someone might devise a new feature of general interest, but they correspond to all features of interest we observed in existing PSIs. They are not independent because several of them are interrelated. For example, F14 depends on F13, because the user input referred to in F14 is a specific type of software event, as referred to in F13. Nonetheless, we believe that it is worth distinguishing them, so we can better evaluate existing PSIs. For example, some systems react to some types of events (F13), but they do not react to input events (F14).
4. Evaluation of Current PSIs
Particle systems have become popular in recent years and many PSIs have been developed to make creating particle systems easier. Table 1 shows ten representative existing PSIs and the features from Section 3 that each supports. For simplicity, we refer to the PSIs as PSI0 to PSI9: PSI0-Particle Chamber [13], PSI1-Microsoft XNA Unleashed [14], PSI2-Building a Particle Engine [15], PSI3-Particle Systems API [16, 17], PSI4-Particles [8], PSI5-Particle 3D [9], PSI6-Balls [18], PSI8-Autodesk 3ds Max [19], and PSI9-Autodesk Maya [20]. For completeness, our DPSF software is also included in the table.
A PSI provides clients with a set of parameters (PSI parameters) whose values may be altered to produce different particle systems and, hence, different effects. Some PSIs, such as PSI0, allow clients to simply select the effect they want from a list of effects (e.g., fire, smoke, snow, etc.) and then the PSI sets all of the PSI parameters accordingly, allowing an effect to be created quickly and easily. If the PSI has the exact effect the client wants, this feature is ideal. Other PSIs allow clients to pick an effect and then accept default PSI parameter values or manually specify new ones. For example, a client might specify the permissible range for a particle's initial velocity and lifetime. Some PSIs, such as PSI0, provide a GUI that clients can use to adjust PSI parameter values and visualize the particle systems in real time as the PSI parameter values are changed. Some PSIs, such as PSI8 and PSI9, allow PSI parameter values to be specified from a script, allowing new particle systems to be created by editing a simple text file. Several PSIs, such as PSI1, PSI4, and PSI5, are available as a set of related codes that can be added to a client program. In more detail, PSI1 provides Update and Draw functions and a Settings class to configure particle properties, and PSI4 and PSI5 both provide a base ParticleSystem class with Update and Draw functions that client classes can inherit. Finally, PS4 is available as a software library with a well-defined API. Recently, Krajcevski and Reppy have specified a declarative API for particle systems (PSI7) [21]. With their approach, a particle system is described in a declarative fashion by an emitter, which specifies how new particles are generated, an action, which specifies how particles are updated, and a renderer, which specifies how particles are drawn. A particle system can be targeted for either CPU or GPU execution.
Although space concerns prohibit a discussion of all features for all PSIs, a few observations are appropriate. As can be seen in Table 1, all ten existing PSIs support features F1, F2, and F3. Adding and updating particles (F1) and providing some built-in PSI properties (F2) and PSI parameters (F3) are essential PSI features. The PSIs differ in the PSI properties they contain and the PSI parameters that they provide to the client. The PSI parameters provided by most of the PSIs include setting the particles' lifetime, initial position, initial velocity, size, and an external force to affect the trajectory of all of the particles, as well as setting the texture used to draw the particles, the maximum number of particles that the particle system can contain, and the rate at which particles should be emitted. All PSIs except PSI2 provide a method to draw particles (F4). Only PSI3, PSI8, and PSI9 provide a method for inspecting the active particles in the particle system (F5).
The PSI parameters mentioned above are adequate for creating some simple visual effects, but these parameters alone are not capable of producing sophisticated effects, such as having the particles follow a path, react to environmental forces, or behave according to physically accurate rules, such as those used in fluid flow simulations. The main problem is that the PSIs are limited in the number of PSI parameters they provide to clients, and the PSI parameters they do provide typically do not allow clients to specify these sorts of behaviors.
By allowing clients to create PSI properties (F6), to specify how the new PSI properties are updated each frame and how they affect other PSI properties (F7), and to create PSI parameters (F8), PSI2, PSI7, PSI8, and PSI9 provide this type of flexibility. Two features that are not provided by most existing PSIs are allowing updates to be triggered when specific particle conditions are met (F9) and when specific particle system conditions are met (F10). Of the systems examined, only PSI8 and PSI9 provided both those features, although PSI7 provides F9.
Of the PSIs inspected, all but PSI1 support updating PSI parameters at run time according to software events (F13). PSI1 allows PSI parameters to be specified during initialization, but it does not allow them to be changed after the PSI has been initialized. The only three PSIs that do not support user interaction with the particle system at run time (F14) are PSI1, PSI8, and PSI9. This limitation is inherent in the design of PSI8 and PSI9 because they are both offline renderers. In other words, they do not perform the simulations in real time. Instead they precompute the simulation and record it as an animation (i.e., video). Clients can incorporate the animations in applications. However, as mentioned, since the users of the application are then simply watching videos, they are not able to interact with the particle systems. Although PSI8 and PSI9 provide more features than the other PSIs inspected, their applications are limited to recorded animation.
The only PSIs inspected that support animated particles (F17) and using multiple images for a particle system's particles (F18) are PSI8 and PSI9. These features are especially useful for films and video game cut scenes, where emphasis is put on the visualization of the particles. By allowing particles to be animated or using multiple images for the particles, more realistic and convincing visual effects can be created. However, because PSI8 and PSI9 are offline renderers, they cannot be used to generate particle systems for the interactive parts of video games.
No single previous PSI supports all 18 features, as shown in Table 1. When clients want to create an effect, they may need to investigate and test multiple PSIs, with no guarantee that the PSIs will support the effects that they require. This can be a time consuming process since clients will not only need to find the PSIs but also learn how to use each of them. To avoid this process, it is preferable to have a PSI that is capable of creating many diverse effects; since once clients learn to use the PSI, they will be able to create any effects they require.
5. Event-Based Updating
As mentioned in Section 2, when using a PSI, clients can define particle and particle system update functions to update the particle and particle system properties, respectively. Once these functions have been defined, clients can choose which functions should be used to update the particles and particle system, when the functions should be called, and the order of their execution. The event-based approach to particle and particle system updating accomplishes this purpose through the use of events, where an event is a delegate (i.e., function pointer) with some extra data, such as the order of execution. Two classes of events are of interest. A particle event points to a particle update function and is used to update particle properties. A particle system event points to a particle system update function and is used to update the particle system properties. To cause an update function to be executed, an event pointing to that update function is added to the particle system. Events can be added and removed when initializing a particle system, as well as at run time. Because events can be added and removed at run time, real-time interaction with the particles can be achieved.
When an event fires, it executes the particle or particle system update function to which it points, updating the particles or particles system, respectively. When and how often an event fires depends on the type of event being used. Four types of events are distinguished.(1)Every Time Events: these events fire every time the particle system is updated and are applied to every active particle in the particle system. Every Time Events are used for updates that should be performed for every frame, such as updating a particle's position according to a velocity or interpolating a particle's color between two color values.(2)One-Time Events: these events fire the next time the particle system is updated and are then removed. Thus, each event only fires once. Like Every Time Events, One-Time Events are applied to every active particle in the particle system. One-Time Events are useful for interactively controlling particles at run time. For example, clients could add a One-Time Event to the particle system each time a specific button is pressed, allowing an effect such as changing the color or size of all particles to occur each time the button is pressed.(3)Timed Events: these events fire at a specific moment in a particle's lifetime and are only applied to that particle. For example, if a particle is set to live for 4 seconds and clients want it to change colors half way through its lifetime, a Timed Event could be specified to fire after 2 seconds (absolute time) or 0.5 of the lifetime (relative time) to change the color of the particle. Timed Events are useful for deterministically controlling a property of a group of particles, such as changing the velocities of all particles at specific times to have them move in a planned pattern.
As mentioned above, Every Time Events and One-Time Events are applied to every active particle in the particle system. If clients only want specific particles to be updated, they can code a condition into the particle update function. For example, if clients want some smoke particles to be moved around when an object passes by them, they can code the particle update function to take into account the particle's distance from the object when updating the particle's velocity. This allows particles close to the object to be greatly affected by it and particles far from it to not be affected by it. By allowing clients to write the particle update functions, triggered by events, the event-based approach allows update functions to affect only some of the active particles (F16).
When a Timed Event fires, it executes the particle update function on only the particles that have reached a specified age. Timed Events typically only fire once, but if clients explicitly change the age or lifetime of a particle, then these events could fire several times. For example, a Timed Event could be set to fire when the particle reaches half of its lifetime. If some update resets the lifetime of a particle to 0.25 when it reaches 0.75 of its lifetime, the event would fire a second time.
Using events allows clients to choose which update functions should be used to update the particle system and its particles. By selecting which PSI update functions to use and by being able to modify the selection at run time, many diverse effects can be created with a single general-purpose PSI. Specific particle systems can be created from such a PSI by specifying the events and update functions that the particle system should use. For example, a PSI might provide three different particle update functions for updating the transparency of a particle as it ages. The first function might linearly interpolate the transparency to have the particle fade evenly during its lifetime. The second function might leave the particle opaque for the first half of its life then fade it out during the last half, and the third function might do the same except restrict the fade out to the last 20% of the lifetime. Clients could then choose which fade out method to use by adding an Every Time Particle Event that points to the appropriate particle update function.
Similar functionality could be offered by traditional PSIs by allowing clients to set a fade out variable with a value from an enumeration listing the possible fade out methods and then using a series of if/else statements to select one. However, using this approach would require that the value of the fade out variable be checked once for every update for every particle in the particle system in order to determine which fade out method to use. If the particle system is being updated 60 times per second and the particle system contains 5000 particles, this method would require 300,000 extra operations every second in the best case scenario, which would be when the fade out variable's value matched the first if statement's conditions. It is expected that this method would decrease performance, especially if the PSI offered similar variables for controlling how the particle's position, velocity, acceleration, color, size, orientation, and so forth were updated, and each of these variables had many possible values. By using events, this potential performance loss is avoided, since the functions to perform the necessary operations are called directly without requiring any additional operations to check variable values. Also, using the method just described, if clients wanted to add additional methods to fade out particles, they would need to add a new value to the fade out enumeration, add an if statement to the logic controlling which fade out method is used, and write the actual operations to perform the new fade out method. By using events, clients only need to define a single new function and specify that it should be called by adding to the particle system a new event that points to the function.
Events can be used to further increase speed over traditional PSIs. Because clients can choose which particle update functions they want to use, they can avoid wasting CPU cycles updating particle properties that are not being utilized. For example, if the particles contain an acceleration property, but the clients do not want to use acceleration to update the velocity of the particles, they simply need not to add an event to update the particle velocity according to the acceleration. In a traditional PSI, clients would set the acceleration of each particle to zero, and during each update the new velocity of every particle would be calculated. Since the acceleration is zero, these operations would be pointless. With an event-based approach, these calculations are avoided altogether by simply not specifying events to update the velocity.
Using events along with PSI update functions provides support for several of the features listed in Section 3. Because events can be added and removed at run time, real-time interaction with the particles is possible (F14). By giving clients the ability to create PSI update functions, which have access to the particle and particle system properties, updates can be triggered by specific particle conditions (F9) and by specific particle system conditions (F10). Similarly, this ability also allows clients to update PSI properties according to the forces in the virtual environment (F11) and other particles in the particle system (F12), as well as to specify which, if any, of the active particles should be updated (F16).
The Dynamic Particle System Framework (DPSF) is a framework written in C# and XNA that provides the 18 features mentioned in Section 3. It consists of two base classes (the base particle class and the base particle system class) and two default classes (a default particle class and a default particle system class). To use DPSF, clients incorporate it into their code, add variables to represent PSI properties, and add functions for initializing and updating. The base particle and particle system classes included in DPSF provide features F1 to F4. Clients can have the list of active particles returned to the external software by using the Active Particles property (F5), allowing them to explicitly draw the particles themselves or to perform other operations such as analyzing the particles and collecting data. Since these base classes can easily be extended, clients can define new PSI properties (F6), new PSI update functions (F7), and new PSI parameters (F8). The base particle class contains only the essential particle properties, which are specifically the particle's lifetime, elapsed time, and visibility. Clients can create particle classes that inherit from this base particle class, allowing them to specify any additional particle properties that they may require, such as position, velocity, acceleration, size, color, or mass. The base particle system class contains functions to perform common particle system functions, such as adding, updating, and removing particles in the simulation. As with particle classes, clients can then create particle system classes that inherit from the base particle system class, allowing them to add new PSI properties, PSI update functions (to update the new PSI properties), and PSI parameters (to specify values for the PSI properties). Also, clients must specify a particle initialization function, which is a function used to specify the initial values of particle's properties when it is added to the simulation. Once clients have created their particle and particle system classes, they have effectively created a PSI; DPSF can then run the simulation using the particle and particle system classes specified by the clients.
This extensibility gives clients freedom to create many types of effects with DPSF. For example, if clients want to create an effect where hot particles ascend and cool particles descend, they could first create a particle class with position and temperature particle properties, by copying the base particle class and inserting two instance variables, one for position and one for temperature. Then they would create a particle system class that includes the following: a particle system property for ambient temperature; a particle update function that updates the particle's temperature to slowly approach the ambient temperature; a particle update function to update the particle's vertical position according to its temperature; a particle initialization function to specify a particle's initial position and temperature; and PSI parameters to specify the ambient temperature and the minimum and maximum values for a particle's initial temperature. They would then run the simulation simply by specifying values for the PSI parameters and calling the Update() and Draw() functions provided by the base particle system class. By extending DPSF, clients do not have to decide how to manage particles in memory or draw them to the screen and can instead focus on the remaining components required to create the desired effect.
DPSF provides default particle and particle system classes. They are useful because many effects require similar sets of PSI properties, PSI update functions, and PSI parameters. The default classes include the components required for particle position, velocity, acceleration, rotation, friction, color, size, and so forth. By using default classes, clients can create common effects quickly, as with existing PSIs. They can also easily extend them to create uncommon effects, such as those required in research applications.
Because DPSF allows clients to create PSI properties (F6), write PSI update functions (F7), and create PSI parameters (F8), they are able to quickly integrate their code into a PSI, allowing custom behaviors to be created. This feature removes many of the restrictions that other PSIs place on clients. Clients can be more productive, because they can incorporate their behaviors and constraints into an existing PSI instead of having to create one from scratch. Because DPSF allows clients to inject their own code into a DPSF PSI, the PSIs described in Section 4 could be implemented using DPSF. Also, because DPSF supports creating a wide variety of effects, clients will likely be able to use DPSF to create all of the particle systems that their applications require, instead of having to use multiple PSIs. Thus, clients will not need to learn to use multiple PSIs and integrate them into a single project.
7. Results
To evaluate the capabilities of DPSF, software called Demo was implemented that uses DPSF to create 35 different effects. Table 2 lists 8 of the effects and the features from F1 to F18 that a PSI must possess in order to create them. The table shows that DPSF supports creating PSIs with all 18 of the features listed in Section 3. As shown previously in Table 1, none of the existing PSIs analyzed in Section 4 provides all 18 features.
For example, Demo demonstrates that PSIs can interact with the virtual environment (F11). In Demo's Fountain effect, balls are emitted in an upward direction and are affected by gravity, which pulls them downward. When the balls hit the floor, they bounce off it. This bouncing is shown in Figure 2(a), which displays the particle trajectories over a span of three seconds.
Demo's Smoke effect demonstrates interaction with objects in the virtual environment, where smoke particles are attracted to an orb that moves past them from left to right, as shown in Figures 2(b) and 2(c).
Deterministic particle systems can also be created using DPSF. For example, Demo's Square Pattern effect shows a simple deterministic effect where each particle follows a square path. This effect is created by using three timed events (F9), which change a particle's velocity direction at 25%, 50%, and 75% of the particle's lifetime. Figure 3 shows the particle trajectories over a span of five seconds.
The Figure-Eight effect shown in Figure 4 also displays deterministic behavior, where the particles follow the path of a figure-eight. This effect was achieved by writing a function with code to make a particle travel in two circles and then adding it as a Timed Event (F7). The three screen shots in Figure 4 show the particles as they travel in a figure-eight pattern.
The Image effect provided by DPSF Demo also shows that complex deterministic effects can be created. In this effect, particles travel in a spiral before coming to rest at their final positions, as shown in Figure 5. The combination of all particles in their final positions forms a single image (F18).
Almost all of the effects created in Demo allow for interaction between the user and the particle system (F14). Most effects allow the user to move and change the orientation of the emitter at run time, affecting where particles are emitted and the direction they travel. Many effects offer other types of user interactions as well. For example, with the Fountain effect, shown in Figure 2(a), users can turn collisions between the balls and the floor on and off. Figures 2(c) and 6(a) show particles being attracted to a user-controlled particle, and Figure 6(b) shows particles being repelled from a user-controlled particle. These effects also demonstrate interactions between particles (F12) as well as control at the individual particle level (F16), because the particle that the user controls is one of the particles in the particle system.
The Animated Butterflies effect, shown in Figure 7, demonstrates animated particles (F17) by creating animated butterfly particles that flap their wings. The animation class allows the animations for the individual butterflies to be played at different speeds simultaneously and to have these speeds updated at run time. By increasing the animation speed as particles travel upward, the butterflies appear to flap their wings faster when ascending and slower when descending, producing a more convincing effect.
By looking at the number of lines of source code used to create the effects in Demo, which were counted using Code Line Counter Pro [22] and are listed in Table 2, one can see that few lines of code are required on the clients' part to create a PSI. In contrast, many more lines of code would be needed to create a PSI from scratch or to modify an existing one to meet the clients' requirements. The small size of the source code provides evidence that many effects can be created quickly and easily by using the given templates and default classes.
8. Conclusion
The goal of this research was to design, implement, and evaluate a software framework that is flexible enough to support creating particle systems for diverse applications while making the process of creating particle systems fast and easy for clients. The DPSF software was developed to accomplish this goal. To simplify learning how to use DPSF and to make creating PSIs faster and easier, templates are provided that clients can use when creating PSIs. In addition, DPSF provides default classes that include particle properties and update functions that are required by many common effects. The default classes make it faster and easier for clients to create common particle system effects. DPSF is available for download at http://www.xnaparticles.com/Download.php.
The Demo software demonstrates that DPSF provides the 18 features listed in Section 3 and shows that DPSF can be used to create many diverse effects. Since DPSF supports these features, it can be used for traditional particle system applications as well as new ones. Because DPSF allows clients to create their own rules and constraints, it is a good candidate to be used in research applications. Also, performance tests reported elsewhere [10] show that the speed of DPSF is comparable to existing PSIs, except GPU-based systems give significantly faster performance for 10,000 or more particles.
Up to the time of writing, DPSF has been used in Holophone 3D [23] (a holographic phone app for WindowsPhone), an XNA-based game engine called PloobsEngine [24] and 18 independent video game development projects [25], including AvaGlide [26], Cannon number 12 [27], Defy Gravity [28], Orbitron: Revolution [29], and Perkuna's Dragon [30]. DPSF could be improved in several ways. More features could be added to the default classes, such as automatic collision detection and reaction between particles and the virtual environment, nearest neighbor detection, and a bounding box containing the particle system. As well, a Graphical User Interface (GUI) could be provided to allow clients who lack programming knowledge to create particle systems using DPSF.
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
This work was supported by the Natural Sciences and Engineering Research Council of Canada via a Discovery Grant to H. J. Hamilton.
- E. Galin, R. Allègre, and S. Akkouche, "A fast particle system framework for interactive implicit modeling," in Proceedings of the IEEE International Conference on Shape Modeling and Applications (SMI '06), p. 32, June 2006. View at Publisher · View at Google Scholar · View at Scopus
- J. C. Hart, E. Bachta, W. Jarosz, and T. Fleury, "Using particles to sample and control more complex implicit surfaces," in Proceedings of the ACM International Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '05), p. 269, ACM, Los Angeles, Calif, USA, 2005.
- M. Meyer, B. Nelson, R. M. Kirby, and R. Whitaker, "Particle systems for efficient and accurate high-order finite element visualization," IEEE Transactions on Visualization and Computer Graphics, vol. 13, no. 5, pp. 1015–1026, 2007. View at Publisher · View at Google Scholar · View at Scopus
- W. Y. Su and J. C. Hart, "A programmable particle system framework for shape modeling," in Proceedings of the International Conference on Shape Modeling and Applications (SMI '05), pp. 114–123, IEEE Computer Society, Cambridge, Mass, USA, June 2005. View at Publisher · View at Google Scholar · View at Scopus
- R. Szeliski and D. Tonnesen, "Surface modeling with oriented particle systems," in Proceedings of the 19th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '92), pp. 185–194, ACM, Chicago, Ill, USA, 1992.
- A. P. Witkin and P. S. Heckbert, "Using particles to sample and control implicit surfaces," in Proceedings of the 21st Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '94), pp. 269–277, ACM, Orlando, Fla, USA, 1994.
- P. Volino and N. Magnenat-Thalmann, "Simple linear bending stiffness in particle systems," in Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Computer Animation (SCA '06), pp. 101–105, Eurographics Association, Aire-la-Ville, Switzerland, 2006.
- Microsoft, Particles, April 2007, http://creators.xna.com/en-us/sample/particle.
- Microsoft, Particle 3d, May 2007, http://creators.xna.com/en-us/sample/particle3d.
- D. Schroeder, Dynamic particle system framework: a framework for building custom particle system interfaces [M.S. thesis], Department of Computer Science, University of Regina, 2009.
- W. T. Reeves, "Particle systems—a technique for modeling a class of fuzzy objects," ACM Transactions on Graphics, vol. 2, no. 2, pp. 91–108, 1983. View at Google Scholar
- J. van der Burg, "Building an advanced particle system," Game Developer, vol. 3, pp. 44–50, 2000. View at Google Scholar
- R. Benson, Particle chamber, June 2000, http://archive.gamedev.net/archive/reference/listce83.html?categoryid=225.
- C. Carter, Microsoft XNA Unleashed: Graphics and Game Programming for Xbox 360 and Windows, Sams, 2007.
- Michael Fotsch, Building a Direct3D Particle Engine, December 2000, http://realmike.org/blog/articles/building-a-direct3d-particle-engine/.
- D. K. McAllister, "The design of an API for particle systems," Tech. Rep., Department of Computer Science, University of North Carolina at Chapel Hill, Chapel Hill, NC, USA, 2000. View at Google Scholar
- D. K. McAllister, Particle Systems API, December 2008, http://archive.gamedev.net/archive/reference/listce83.html?categoryid=225.
- bjackdl, Balls, March 2008, http://en.pudn.com/downloads102/sourcecode/windows/csharp/detail416495_en.html.
- Autodesk, Autodesk 3ds Max, September 2013, http://usa.autodesk.com/3ds-max/.
- Autodesk, Autodesk Maya, September 2013, http://usa.autodesk.com/maya/.
- P. Krajcevski and J. Reppy, "A declarative API for particle systems," in Practical Aspects of Declarative Languages, vol. 6539 of Lecture Notes in Computer Science, pp. 130–144, Springer, Berlin, Germany, 2011. View at Publisher · View at Google Scholar · View at Scopus
- BistoneSoft, Code Line Counter Pro—C# Version 3.8, May 2009, http://www.softplatz.net/Downloads/Development/Compilers-Interpreters/Code-Line-Counter-Pro-C-Version.html.
- Holophone3D, Experience 3D holograms on Windows Phone, September 2013, http://dpsf.freeforums.org/holophone3d-experience-3d-holograms-on-windows-phone-t110.html.
- tpastor, PloobsEngine, September 2013, http://dpsf.freeforums.org/ploobsengine-t94.html.
- DPSF Forums, Projects that use DPSF, September 2013, http://dpsf.freeforums.org/.
- Haiku Interactive, AvaGlide, September 2013, http://haikuinteractive.com/.
- SquigglyFrog Studios/Microsoft Games Studios, Cannon #12, September 2013, http://cannon12.squigglyfrog.com/.
- Fish Factory Games, Defy Gravity, September 2013, http://dpsf.freeforums.org/defy-gravity-t81.html.
- Firebase Industries, Orbitron: Revolution, September 2013, http://dpsf.freeforums.org/orbitron-revolution-t106.html.
- Middle Lands Studios, Perkuna's Dragon, September 2013, http://www.wp7connect.com/tag/middle-lands-studios/.


text:
Cheap tickets from Grand Cayman to St. John's
If you're looking for cheap tickets from Grand Cayman to St. John's, WestJet has exactly what you want. We fly to destinations in North America, Central America, the Caribbean and Europe — including flights into St. John's International Airport — and we're here to get you where you want to be. On top of that, we offer a winning combination of affordability and comfort, so you can expect to pay less and get more. Take a look at our range of cheap tickets today.
Low fare finder
Don't see what you're looking for? Find all of our great low fares in one place.
A WestJet ticket is the first step of your trip to the City of Legends
Airport Details: From GCM, Owen Roberts International Airport To YYT, St. John's International Airport
Salty sea air and renowned hospitality make St. John's one of Canada's most refreshing destinations. As the capital of Newfoundland and Labrador, this charming city is known for its natural beauty, spirited local music and mouthwatering seafood dishes. It's also a place where history comes to life through the distinctly Irish aspects of its heritage, nature and people.
Book your cheap ticket and look forward to touching down in one of Newfoundland and Labrador's most bustling and adventurous destinations. No matter the nature of your visit, you're sure to enjoy the Railway Coastal Museum, Hiscock House and Terra Nova National Park — most of all you can count on WestJet to get you from Grand Cayman to St. John's.

subset: commoncrawl


text:
Fort Myers Fishing Guide Captain Bill Curtis
Fishing Reports
Contact Info
May June 2014 Ft. Myers Fishing Charters
Posted by Captain Bill Curtis on Wednesday, June 11, 2014
Under: Fort Myers
The Crowds from a great season are gone, but I'm still getting to fish a few times a week. Some inshore and some offshore fishing trips have been keeping me busy. Finding live bait for the inshore trips has been difficult to say the least. So for the most part we've been fishing with live shrimp and still having good success. The snook have moved from their winter time back country haunts and have flooded the bays, passes, and beaches, and they are hungry.
We're landing several on most trips with some chances at big fish as well. There are still a few sheepshead around to catch and there are tons of hungry mangrove snapper with plenty of keeper size fish in the mix that we've been cleaning for the table.
Fishing offshore on the Fish-n-Tales continues to be a great experience, as Captain Scott absolutely knows how to put us on the fish. The recent, short red snapper season went well, with limits caught in no time flat and some nice fish over 30".
The red grouper continue to be consistent with great hauls keeping us busy cleaning fish at the dock. We also continue catching gag grouper that have to be released, including some of the biggest I've seen over 40".
In :
Fort Myers
Next post:
09-16-14 Redfish...
Previous post:
End of April 2014...
"ft. myers fishing charter reports"
« Back to posts
About Captain Bill Curtis
fort myers fishing charter
fort myers fishing report
ft. myers offshore charter fishing report
fort myers fishing charter report
ft myers fishing charter
ft. myers charter fishing report
ft. myers fishing charter
ft. myers fishing report
ft. myers snook fishing
estero bay
estero bay fishing
estero bay fishing charter
fort myers fishing guide report
marco island fishing trip
!0 000 islands fishing trip
10 000 islands fishing charter
10 000 islands fishing report
10 000 islands houseboat trip
10000 islands fishing
10000 islands fishing report
10000 islands redfish and snook
big snook
estero bay fishing report
estero bay fishing trip
estero bay redfish
everglades national park
fishing report
florida keys fishing
fort myer fishing report
fort myers
fort myers beach fishing charter
fort myers charter fishing
fort myers charter fishing report
fort myers estero bay fishing charter
fort myers family charter
fort myers fishing
fort myers fishing trip
fort myers florida shark fishing report
fort myers grouper fishing
fort myers offshore charter fishing report
fort myers redfish
fort myers snook fishing report
fort myers tarpon fishing
ft myers beach fishing charter
ft myers kids fishing
ft myers offshore fishing charter
ft myers offshore fishing update
ft myers snook fishing
ft. myers beach charter fishing report
ft. myers beach fishing charter
ft. myers charter fishing guide report
ft. myers fishing charter reports
ft. myers fishing charters
ft. myers fishing charters reports
ft. myers florida bass fishing
ft. myers florida fishing report
ft. myers guided fishing charter
ft. myers inshore fishing charter
ft. myers nearshore charter fishing report
ft. myers offshore fishing
ft. myers offshore fishing report
ft. myers tarpon fishing
ft.myers fishing charters
ft.myers redfish fishing charter
goliath grouper
great fort myers fishing charter
marco island fishing
marco island fishing charter
marco island fishing report
south west florida fishing
southwest florida fishing report
spring break charter guide fishing trip
tiger shark fishing report
10,000 Islands (12)
Fort Myers (100)
Recent Posts
Merry Christmas and Happy New Year
November 2016 10 Hour Offshore Charter Fishing...
November 2016 Offshore charter Fishing Update
June 2016 Long Range Ft. Myers Fishing Charter
Good November 2015 Offshore Fishing Trip
Subscribe to this blog
Website By FWCWebServices


text:
How did we get here ?
Cube / A Synopsis
The Center for Understanding the Built Environment provides educational resources to teach children and adults about the value of engaged citizenry. The built environment [everything that is not nature] influences, affects, inspires, controls, allows us, in our every activity to be a participant or a subject.
What is our built environment?
Our built environment starts with the home. It expands in ever widening circles to neighborhood, school, church, shops, services, farm, office, factory, civic and government institutions. All of these kinds of buildings are arranged in patterns of development. They are overlaid road systems, utilities, parking, open space and waterways.
Cities function in many different ways due to decisions that have taken place for hundreds of years. This affects our everyday psyche. Neighborhoods planned with beauty, proportion, scale, appreciation for nature and efficiency are better places to live, work and play.
How did we get here?
Our typical educational system [K-12] does not prepare us to think about how the built environment is created or how we should/could function in it.
We think architects just draw a building on paper and a contractor builds it. The long history of architecture is glossed over. What is architecture? What is design? What is structure? What emotions, functions and activities do buildings provide?
How did our neighborhood, town, city get designed and built? How does it function? The role of planners, politicians, bankers and citizens makes for a rich mixture of creativity and possibility. Engaged citizens wield a large influence on our communities.
How Cube works
CUBE provides tools for learning the fundamental concepts of how our built world has been designed. Active involvement from design to politics can make a difference in the outcomes.
Some of the Cube tools:
Walk Around the Block teaches students how to see and experience their local neighborhood with new eyes. Design, patterns, color, integration with nature, history help us 'read' and understand the built environment. Box City engages teachers and students in the act of design and the formation of our towns by decorating box shapes and placing them in strategic locations on a room sized 'map' of a neighborhood. Teamwork and negotiation is required as the various buildings in a group setting are placed on the 'map'. There are many individual activities and curricula designed and developed by CUBE that are available for teachers, planners and community activists.
Cube history
The Center was invented in 1983 by Ginny Graves, HAIA. As a teacher, she saw the need for a more holistic pedagogy. The built environment provides the platform to reading, writing, math, science, art and technology. Ginny and her architect husband, Dean Graves, FAIA, and her unbelievable cadre of volunteer teachers developed CUBE to teach other teachers to teach students these fundamental concepts. Box City, Walk Around the Block, Picture This! and other curricula have found their way into city offices, schools and community centers all over the world – reaching an estimated 1,500,000 students over the years. Cube is a 501c3 organization.
Kirk Gastinger, FAIA Director
contact: email@example.com


text:
A lot of memories, experiences, ups and downs, and also some good moments on the bike..
So here is the highlights from my bikeyear 2009 i wont forget!
But in Toscana i got a nice 5th place in the time trial there.
So with a great 2009 i'm very excited to see what 2010 can bring, but i also learnt some things to do diffrent to next year..
But for now i wish you all a happy new year!


text:
"There are many chains which enslave the preacher. His very tenderness makes him weak. His attachments to the people tend to bring him into bondage. His personal encounters, his obligations to his people, his love for them, all tend to hamper his freedom and restrain his pulpit deliverances. What great need to be continually praying for boldness to speak boldly as he ought to speak.!
The prophets of old were charged not to be afraid of the faces of men. Unawed by the frowns of men, they were to declare the truth of God without apology, timidity, hesitancy or compromise. The warmth and freedom of conviction and of sincerity, the fearlessness of a vigorous faith, and above all the power of the Holy Spirit, are all wonderful helpers and elements of boldness. How this should be coveted and sought with all eagerness by ministers of the gospel in this day!" E.M. Bounds
We, who are 'Ministers of the Gospel' in this day, must encourage daily, rebuke when necessary, and most importantly pray and then pray some more. Pray that the full armor of God be worn and the enemy rendered ineffective in each others lives........Larry


text:
Where would you like to go?Great hotel deals, discounts and promotions!.
This fantastic city hotel stands out for its original design and minimalist-style décor, as well as a prime location in the centre of the Mitte district, offering guests an ideal place to explore the city and its main attractions. The property is very close to the metro station and at just 50 metres from Checkpoint Charlie and the Friedrichstrasse shopping street. Guests will feel right at home in comfortable, spacious and bright bedrooms, equipped with modern furniture and useful amenities to make them experience a fully enjoyable stay. A healthy breakfast awaits travellers every morning in the hotel's dining room and a selection of appetizers and light meals are available in the evening. The bar is the perfect place to relax with friends, while sipping a delicious cocktail and unwinding after a busy day conquering the Berlin streets. Whether travelling for business or leisure purposes, this modern design hotel offers all the necessary comforts for a pleasant stay in an ideal setting.
- Total number of rooms : 140
- NO Connecting rooms :
Room Facilities
- Internet access
- Safe
- Living room
- Wi-fi
- Extra beds on demand
- NO Smoking rooms
- NO Disability-friendly bathroom
Service Facilities
- Wired Internet
- Laundry service
- Medical service
- 24-hour reception
- Currency exchange facilities
- Wi-fi
- Lift access
- NO Large pets allowed (over 5 kg)
- NO Small pets allowed (under 5 kg)
- NO Garage
- NO Car park
- NO Wheelchair-accessible
- Bar
- Restaurant


text:
Our SENCO is Miss Charlotte Warne and our Deputy SENCO is Mrs Miranda Collett. If you have any questions or concerns regarding SEN, please contact them on the link below (email@example.com) or via the school office on 01923 776529.
We use cookies to track usage and improve the website.
Click here for more information.


text:
Daniel Berthelot, Assurance Partner, and chair of the Raymond Chabot Grant Thornton Golf Tournament for Women Organizing Committee was very proud to give a symbolic cheque for $168,650 to the Fondation Santé Baie-des-Chaleurs last July 7th. The funds will be put towards the purchase of digital 3D breast tomosynthesis and needle aspiration biopsy equipment and a specialized examination chair. Thanks to this high-tech equipment, Hôpital de Maria in the Gaspe, will be able to significantly improve breast cancer detection and perform biopsies.
In an interview with the L'Écho de la Baie newspaper, Daniel Berthelot stated, "Once again, our community has made an outstanding contribution to the Fondation Santé Baie-des-Chaleurs' mission. Businesses in the Baie-des-Chaleurs answer the call to support the foundation's mission year after year, making the golf tournament one of the most important fund-raising activities in our region."
Raymond Chabot Grant Thornton is the main event sponsor and Daniel has chaired the tournament organizing committee for five years in a row. Well aware of the foundation's importance, he is very enthusiastic about the benefits to be gained from these new technologies and about making them available in the Gaspe. His dedication to this cause is a testament to his Baie-des-Chaleurs community involvement, showcases our firm and reinforces ties with clients and business partners in the region.
Dr. Marie-Claude Thériault, Medical Imaging Chief at the Centre intégré de santé et de services sociaux de la Gaspésie, Honorary Chair and event spokesperson, with Daniel Berthelot, organizing committee chair and New Richmond office Assurance Partner.
Congratulations to the New Richmond team for their involvement in this wonderful event! From left to right: Daniel Berthelot, Noémie Fecteau, Manon Leblanc, Jenny Bergeron, Sylvie Lavoie, Luc Poirier, Luc Audet et Stéphane Gagné.
19 Jul 2017 | Written by :
Mr. Berthelot is a partner at RCGT. He is your expert in assurance for the New Richmond office....See the profile
You could also like to read
Next article
MONTRÉAL, July 12, 2017 – Raymond Chabot Grant Thornton, a Canadian leader in assurance, tax, advisory services and recovery & reorganization, is joining forces with Jonathan Hamel, Francis Pouliot and Vincent Gauthier to create a Montréal-based blockchain expertise centre — Catallaxy — to invest in blockchain technology research, development, training and marketing.
Housing the "Blockhouse", an innovation and expertise centre, Catallaxy will be a unique portal for the blockchain technological and economic revolution. Our objective is to prepare businesses for their blockchain transformation.
The centre will be operational this fall with a service offering combining the advanced technical expertise of the blockchain community and Raymond Chabot Grant Thornton's consultants.
Fifteen people will be based in Montréal with some 50 strategic partners and collaborators worldwide.
Transformative technology
Emilio B. Imbriglio, President and CEO of Raymond Chabot Grant Thornton stated: "Blockchain technology has the potential to transform our current business model. This is why we want to create this new synergy between our traditional activities and the new opportunities offered by this technology. Working with internationally renowned experts, we want to make Montréal a hub for blockchain technology development within the Grant Thornton network."
Jonathan Hamel, President and CEO of Catallaxy added: "Blockchain is a strong trend along the same lines as artificial intelligence. Technologies like Bitcoin and Ethereum will have the same impact on the financial system and governance as the Internet had on written media and music."
The team
Jonathan Hamel developed mobile payment solutions in emerging countries and was one of the first investors in the Ethereum platform. He is also a member of the Autorité des marchés financiers (AMF) technological innovation advisory committee.
Vincent Gauthier developed various blockchain solutions and is the founder of the Blockchain Montreal community.
Francis Pouliot was the founder and President of Satoshi Portal, co-founder of the Montréal Bitcoin Embassy and member of the Bitcoin Foundation and the Ontario Securities Commission's Fintech committee.
About Raymond Chabot Grant Thornton
Founded in 1948, Raymond Chabot Grant Thornton has become a Canadian leader in the areas of assurance, tax, advisory services, and business recovery & reorganization. Its strength is based on a team of over 2,300 professionals, including some 200 partners. Together, Raymond Chabot Grant Thornton and Grant Thornton LLP, another Canadian member firm of Grant Thornton International Ltd, help dynamic Canadian organizations unlock their potential for growth with over 4,200 professionals and some 140 offices across Canada. Grant Thornton International Ltd provides clients with the expertise of member and correspondent firms in more than 130 countries, with over 47,000 professionals.
Sarah Ouannou
Public Relations
Raymond Chabot Grant Thornton
[email protected]
19 Jul 2017 | Written by :
Mr. Berthelot is a partner at RCGT. He is your expert in assurance for the New Richmond office....See the profile
Next article
In connection with his financial shows on Radio-Canada radio, Pier-Paul Belzil-Lacasse, Lead Senior Manager, Turnaround and Licensed Insolvency Trustee at Raymond Chabot Grant Thornton, discusses a series of issues.
Protecting financially vulnerable people
The purpose of Bill 134 is to protect financially vulnerable people by modernizing consumer credit rules, by regulating certain debt settlements, credit agreements, loyalty programs, etc. Here are some noteworthy measures:
- Online quick loans: will be closely supervised, will have to licensed and provide the contract information to prevent consumers from paying more than 100% interest or hidden fees, for example.
- Obligation for merchants to assess consumer's capacity to repay when they make a loan, at the risk of not having right to the credit they sold to the consumer (e.g.: furniture stores).
- Increase in minimum credit card payment to 5% over 4 years. This would enable cardholders to pay down both interest and part of the capital.
Listen to the radio show "Conseil financier : le projet de loi 134 " (Financial tip: Bill 134) (Go to the segment broadcast at 8:22 a.m. if the audio doesn't start automatically).
Know how to resist summer temptations
Summertime is ripe with temptation and expenses tend to increase during this season. However, it's relatively easy to control the spending. Here are a few things you can do:
- Make a budget and don't use your credit card as a financing tool.
- Manage your cash properly (don't buy water bottles or coffee, instead, prepare them at home) and make your lunch.
- Review your priorities and implement your resolutions (stop smoking and keep this money for a trip for example).
Listen to the radio show "Conseil financier – L'été, une saison pour dépenser" (Financial tip: Summertime, the spending season) (Go to the segment broadcast at 8:20 a.m. if the audio doesn't start automatically).
Is your estate properly planned?
The foundation of proper estate planning is obviously to have a will and mandate in case of incapacity. By having such documents and consulting a notary, you'll be able to appoint a liquidator, appoint a guardian for the children, specify how your property and money is to be allocated, etc.
When should you think about making a will? As a couple, when you have assets together or children, a will is almost imperative so don't wait too long if you're in this situation and still don't have a will.
Listen to the radio show « Conseil financier – La planification successorale » (Financial tip: Estate planning) (Go to the segment broadcast at 8:21 a.m. if the audio doesn't start automatically).
Children and money: simple, practical tips
It's important to explain to children how money works to avoid the subject becoming taboo and to demystify money management. Here are a few ideas to explore with your little ones based on their age.
- Less than 5 years old: keep a piggy bank and put money in it to instill the notion of saving, pretend shopping to show the exchange involved in a purchase, learn how to count, etc.
- 6 to 8 years old: explain the difference between debit and credit.
- 9 to 12 years old: compare the price of certain products at the store or grocery based on different brands.
- 13 to 15 years old: establish a budget for buying clothes at the start of the school year, go over the monthly credit card statement to learn about interest, analyze advertisements, make a budget, make them understand how saving leads to the realization of financial objective and dreams, establish the difference between needs and wants, etc.
Listen to the radio show "Conseil financier – L'éducation financière des enfants" (Financial tip: Financial literacy of children) (Go to the segment broadcast at 8:20 a.m. if the audio doesn't start automatically).
Fraud: better safe than sorry
Fraud has many faces. Here's a few things you can do to avoid being a victim of fraud:
- Never give access to your computer or provide personal information over the telephone to anyone.
- Shred personal documents, don't recycle them.
- In emails or texts, don't click on links that seem fishy.
- Carefully review your credit card and bank statements every month.
Listen to the radio show "Conseil financier – Se protéger contre la fraude" (Financial tip: Protect yourself against fraud) (Go to the segment broadcast at 8:22 a.m. if the audio doesn't start automatically).
What is a Licensed Insolvency Trustee?
In his last show of the season, Pier-Paul Belzil-Lacasse discusses the profession of a Licensed Insolvency Trustee. He explains what's involved in the basic training required to obtain a license to practice. He also specifies when a person should meet with a trustee and what is discussed in such a meeting.
Listen to the radio show "Conseil financier – Qu'est-ce qu'un syndic?" (Financial tip: What is a Trustee?) (Go to the segment broadcast at 8:20 a.m. if the audio doesn't start automatically).
19 Jul 2017 | Written by :
Mr. Berthelot is a partner at RCGT. He is your expert in assurance for the New Richmond office....See the profile
Next article
From May 28-30, 2017, Emilio B. Imbriglio, President and CEO, participated in the Canadian trade delegation to Italy with Prime Minister Justin Trudeau and Minister of International Trade François-Philippe Champagne, to reinforce existing ties between Canada and Italy.
Emilio also benefited from his time in Italy to visit the Grant Thornton offices in Rome and meet fellow partners. An article was published about this visit by Italian media (Askanews.it). (Please note the article is in Italian).
19 Jul 2017 | Written by :
Mr. Berthelot is a partner at RCGT. He is your expert in assurance for the New Richmond office....See the profile


text:
Nuclear Ballerina signed print (Fall of Cthulhu)
Nuclear Ballerina signed print (Fall of Cthulhu)
8.5" x 11" print on heavy stock. This was the cover for issue #9 of Boom Studio's "Fall of Cthulhu" series.
Signed by the artist, of course!
Add To Cart
The cover for Boom! Studio's "Fall of Cthulhu" #9, as well as the cover to the second "Fall of Cthulhu" TPB can now be yours in terrifying full color! This 8.5" x 11" print is on heavy stock, and signed by the artist (me!)


text:
Lavalette, NJ – Kathy Anderson of Progress Capital Advisors secured a $2,600,000 commercial loan for a valued client who used the $1,800,000 cash out to fund other CRE acquisitions. The property is subject to a 20 Year NNN lease to Rite Aid with 7 years remaining on the primary term. Terms of this loan include:
Progress Capital Advisors loan programs include Fixed Rate Loans, Construction and Specialty Financing as well as Directly Funded Bridge Loans. With over $40 Billion in closed loans and $100 Million in bridge and direct lending, we will get you to the closing table – plain and simple – #thatsPROGRESS


text:
In 1998, the United States enacted the Children's Online Privacy Protection Act, better known as "COPPA." As the Internet is a worldwide medium, the question many businesses face is whether they should comply with COPPA if the company is not located in the United States?
COPPA is a federal law designed to give parents control over the collection of personal information regarding their children (under 13 years old) by online companies. If a website, app or another online property seeks to collect such information, the business must first obtain verified parental consent through a complex compliance process detailed in the law. Companies ranging from Sony to Yelp have run into conflict with the law, and paid fines in the six to seven figure range to resolve the investigations.
Target Market
While COPPA is a law of the United States, the important thing for international companies to understand is it applies to the collection of information from children in the United States. A company located in London, for example, must still comply with the law if it targets the US market and is collecting information from children under 13. This distinction can be a significant issue for app companies, in particular, that target the lucrative US consumer market through Apple and Android app stores.
In 2014, the Chinese company responsible for an app known as BabyBus was issued a COPPA warning letter by the FTC, the government agency in the United States responsible for enforcing the law. The FTC accused BabyBus of collecting information from kids under 13 without first obtaining parental consent. The company responded by quickly investigating the claim and resolving the COPPA problems.
Many commentators pondered why a Chinese company would act so quickly, but the answer is readily apparent. The BabyBus app was sold primarily through the Apple and Android app stores in the US market. While COPPA did not apply to a Chinese company per se, the law certainly applied to Apple and Google. BabyBus risked being removed from the stores if it failed to address the COPPA issues, a result that would have seriously hampered revenues. Any company targeting the US market faces the same practical, if not legal, outcome.
On 11 May 2015, the United States Federal Trade Commission entered into an agreement to pursue COPPA enforcement actions with 27 member countries of the Global Privacy Enforcement Network ["GPEN"], an organisation that includes all EU countries. Although the initiative has not been fully detailed as of yet, what is clear is the countries will be seeking cross-border enforcement actions with an emphasis on mobile apps. This initiative should act as motivation for app companies across the world to make sure they are in compliance with the relevant laws in their target market.
COPPA Penalties
The FTC investigates and enforces COPPA through litigation in the United States court system. The Commission claims penalties of up to $16,000 per COPPA violation per child. For example, a social media website found to have 500 children under 13 as members in violation of COPPA will face penalties of up to $8 million dollars. [$16,000 x 500 children.] The potential size of such penalties should act as motivation for any business management team to understand the law in general, as well as the company's specific COPPA compliance obligations.
The application of the laws of a particular country to the Internet has always been problematic given the global reach of the web. For companies running online properties tailored towards children under 13, it is critical that COPPA be taken into account if individuals in the United States comprise any part of the target market for the online properties.
Author: Richard A. Chapo, Esq is a COPPA lawyer with COPPALawAttorney.com
DISCLAIMER: This article should not be regarded as constituting legal advice in relation to particular circumstances. This article is merely a general comment on the relevant topic.
Published on 13th May 2015
(Last updated 28th March 2018)


text:
This professional quality touch sensitive keyboard utilize an Internet Data Expansion System to configure the keyboards to your specific needs using waveform and other data. A built-in floppy disk drive supports playback of commercially available SMF data, and a LINE OUT jack allows connection to sound equipment for stage performances. Features include SD Data Storage, an advanced ZPI sound source, drawbar organ, stereo piano and much more, making them ideal for project studio use, open-mic performance, education/classroom applications, or simply for pure musical enjoyment at home. Keys (full size) 76 Touch Response 3 sensitivity levels, off Preset Tones 670 (400 Advanced tones, 50 drawbar organ tones, 128 GM tones, 72 various tones, 20 drum sets) User Tones 224 (100 user tones, 100 user drawbar organ tones, 20 user tones with wave, 4 drum sets with wave) Rhythms 182 (166 preset incl. 20 piano rhythms, 16 User Rhythms) Layer/Split Yes Synthesizer function Yes Digital effects 232 (16 reverbs, 16 choruses, 100 preset DSP, 100 User DSP ) Registration Memory 4 sets x 8 banks One-touch preset 182 sets Floppy disk Drive Yes Bass-reflex speaker system Yes Polyphony (max) 32-Note Internet Data Expansion System Yes Drawbar Organ function Yes SD Card Slot Yes Song memory 6 tracks x 5 songs, up to 10,000 notes, real time & step recording capabilities, each track editable Digital Equalizer 10 presets patterns, 4 bands adjustable Modulation Wheel Yes Yes General Midi Yes Size (WxDxH) 1223 x 423 x 160mm Weight 9.5 kg Batteries D-size x 6 Supplied with AC adaptor: AD-12EL
Casio WK-3800 Basic Keyboard - Sound and Light


text:
NHL Stats
Loading Skater Stats...
NHL Game Log
Calculate Stats Over Time
Just click on any two dates.
Yahoo DFS
Loading Skater Game Log...
2019–20 Time On Ice Stats
- Average Time On Ice: 18:25
- Average Power Play TOI: 2:44
- Average Short-Handed TOI: 1:45
Ice Time
Power Play
Blue Jackets Depth Chart
Our full team depth charts are reserved for RotoWire subscribers.Subscribe Now
Blue Jackets Power Play Depth Chart
Our full team depth charts are reserved for RotoWire subscribers.Subscribe Now
Recent RotoWire Articles Featuring Alexander Wennberg
Jason Chen previews Friday's FanDuel slate, which features a modest three games.
Jason Chen explores a pair of Game 3s for Tuesday's slate, recommending five Blue Jackets at home versus Boston.
Jan Levine's fantasy playoff cheat sheet ranks skaters and goalies in the Stanley Cup Playoffs. Should Tampa Bay's Andrei Vasilevskiy be the top goalie in your playoff leagues?
Jan Levine looks at who's up and who's down in hockey, including Edmonton's Leon Draisaitl, who is could notch 100 points this season.
Jan Levine looks at who's on the upswing in the NHL, including the Rangers' Ryan Strome, who could be the big winner coming out of the trade deadline in New York.
Past Fantasy Outlooks
The slender Swede battled back from upper-body injuries last season, and while he showed a knack for quick recoveries, his production took a steep drop. Wennberg in particular was hit hard by the struggles of the Blue Jackets' power-play unit, managing only five points with the man advantage after racking up 23 the season before. The 23-year-old is never going to be a prolific goal scorer due to his reluctance to shoot, but he's got the slick passing skills, vision and hockey IQ to be a reliable No. 2 center, assuming at some point the team can add or develop a true No. 1 to slot in ahead of him. Until then, Wennberg may find himself occasionally miscast in a lead role, but his strong two-way play -- he posted a career-best plus-22 rating last season -- will keep him in a prominent spot even when he's not generating points.
Jarmo Kekalainen's first ever draft pick back in 2013 as the new GM of the Blue Jackets, Wennberg took a big step forward in his development in 2016-17, staying healthy and playing a career-high 80 games while improving his production across the board. The young Swedish center remains a pass-first player in the offensive end, taking only 109 shots on the season, but his vision and hockey IQ make his linemates better. The coaching staff will continue to press him to be more aggressive in looking for his own shot rather than giving up the puck, as good things tend to happen when he keeps it, but the Jackets have more than enough talent around him on the wings to take advantage of his willingness to facilitate.
Wennberg showed some growth in his sophomore campaign, doubling his goal and point totals while improving his plus-minus and generally looking a lot readier for the rigors of the NHL. The 21-year-old will be asked to make another leap forward in 2016-17, however, as the Jackets' lack of depth up the middle has him penciled in as the second-line center to begin the season. That role would provide him with a much-improved supporting cast, likely including Brandon Saad, but while the young pivot's already demonstrated that he can handle himself in his own end, Wennberg hasn't yet proven he's ready for that level of responsibility on offense. Assuming he uses this offseason to get stronger and avoid the various injuries that cost him 13 games last year, though, the Swede's outstanding vision, passing and hockey IQ could allow him to challenge the 50-assist mark thanks to the snipers riding shotgun for him.
Last year's 14th overall pick has the skill and hockey IQ to excel in just about any role on an NHL roster, and the 19-year-old Wennberg will get a legitimate chance to earn a spot on the Columbus roster in training camp. His fantasy ceiling might be limited at the outset, but down the road, he could comfortably settle in on a second or third line and be the kind of player who contributes at both ends of the ice.
The 14th overall pick in this year's draft, Wennberg has the skill, smarts and drive to make an impact in every zone on the ice once he transitions over to North America. He's still a couple of years away from the NHL, but he should adapt quickly to the pro game and become a fixture in the Blue Jackets' lineup.


text:
It is estimated that up to 80% of all homes in the United States have hard water. Essentially, that means that the water contains dissolved rock, most commonly limestone and iron, which leaves a residue on sinks and fixtures, damages water-using appliances, and ruins piping with rust build up. The only way to combat hard water issues is to install a water softener that will create soft water for your home use.
How Does It Work?
The purpose of a water softener is to eliminate dissolved rock from the home water supply. Made of two tanks, a salt brine tank and a resin tank, the water is sent into a filtration cycle through a process known as ion exchange. Ion exchange uses resin, debris slightly larger than granules of sand, to filter out the hard water molecules leaving soft water behind. A cleaning, called regeneration, is required once the resin is full of hardness. During this process, the home water supply is shut down as the resin tank is flooded with salt brine water in the opposite direction of typical water flow, effectively removing the hardness from the resin. After a final rinsing of the resin, soft water production can begin again.
Is That Noise a Problem?
Noisy by default, water softeners have a lot of moving parts, it is common for homeowners to mistakenly think that the sound of the motor during the regeneration process is a sign of mechanical error. This is due to the fact that most often the regeneration cycle is programmed to occur at night, leading to the sound being perceived as louder and more troubling. While this sound might indicate business as usual, that is not to suggest that there are not plenty of noises that could indicate an issue with the machinery. Calcium or magnesium build up on the intake valves, trying to use water during the regeneration cycle, air check mechanism issues, and even loose gears can all contribute to a noisy water softener. It is also possible that the disturbance is a result of the water heater, dishwasher, or another water-using appliance.
How Do I Fix It?
Essentially, the only sound that you should regularly hear from your water softener is the back-flush occurring during the regeneration cycle, typically a recurring sound during the middle of the night. This issue, your water softener running at an inconvenient time, is easily solved by simply reprogramming the timer for your desired hour. However, if you don't have working knowledge of how best to maintain your water softener, a visit from a qualified plumber would be required to repair any malfunctioning equipment. The most common issues requiring maintenance tend to involve the control valve, whether that be a leak or rusty pipes, or the air check mechanism, a floating ball in the brine tank, both of which would require a visit from a professional Las Vegas plumber.


text: Hey there! I actually came across the pix that you took of Legenda Singapura...they're all really really nice! Just so happens that I was one of the performers and in one of the pix too Pic #6... was wondering if I could have a copy of it just for keepsakes? That's if you don't mind... Really like all your other pics too, the colours are beautiful!