open-index/open-npm huggingface dataset:
npm package: @strata-game-library/capacitor-plugin
Description: Cross-platform input, device detection, and haptics for Strata 3D games
Author: Jon Bogaty
Latest version: 1.0.2

# @strata/capacitor-plugin

[![npm version](https://img.shields.io/npm/v/@strata/capacitor-plugin.svg)](https://www.npmjs.com/package/@strata/capacitor-plugin)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Cross-platform input, device detection, and haptics for [Strata 3D](https://strata.game) games. Works with Capacitor for iOS/Android native apps, Electron for desktop, and pure web.

## 📚 Documentation

**Full documentation is available at [strata.game/mobile/capacitor](https://strata.game/mobile/capacitor/)**

---

## 🏢 Enterprise Context

**Strata** is the Games & Procedural division of the [jbcom enterprise](https://jbcom.github.io). This plugin is part of a coherent suite of specialized tools, sharing a unified design system and interconnected with sibling organizations like [Agentic](https://agentic.dev) and [Extended Data](https://extendeddata.dev).

## Features

- **Device Detection** - Platform, device type, input mode detection
- **Unified Input** - Touch, keyboard, and gamepad abstraction
- **Haptic Feedback** - Device vibration and gamepad rumble
- **Screen Orientation** - Lock/unlock orientation
- **Safe Area Insets** - Accurate safe area for notched screens
- **React Hooks** - Ready-to-use hooks for React/R3F integration

## Installation

```bash
pnpm install @strata/capacitor-plugin
npx cap sync
```

## Quick Start

```tsx
import { DeviceProvider, useDevice, useInput, useHaptics } from '@strata/capacitor-plugin/react';

function App() {
  return (
    <DeviceProvider>
      <Game />
    </DeviceProvider>
  );
}

function Game() {
  const device = useDevice();
  const { leftStick } = useInput();
  const { medium } = useHaptics();
  
  return <GameCanvas />;
}
```

## Platform Support

| Feature | Web | iOS | Android | Electron |
|---------|-----|-----|---------|----------|
| Device Detection | ✅ | ✅ | ✅ | ✅ |
| Touch Input | ✅ | ✅ | ✅ | ✅ |
| Keyboard Input | ✅ | ⚠️ | ⚠️ | ✅ |
| Gamepad Input | ✅ | ⚠️ | ⚠️ | ✅ |
| Device Haptics | ⚠️ | ✅ | ✅ | ❌ |
| Gamepad Haptics | ✅ | ❌ | ❌ | ✅ |

## Related

- [Strata Documentation](https://strata.game) - Full documentation
- [Strata Core](https://github.com/strata-game-library/core) - Main library
- [React Native Plugin](https://github.com/strata-game-library/react-native-plugin) - React Native version

## License

MIT © [Jon Bogaty](https://github.com/jbcom)
npm package: @strata-game-library/core
Description: Procedural 3D graphics library for React Three Fiber - terrain, water, vegetation, sky, volumetrics, and characters
Author: Jon Bogaty
Latest version: 1.4.12

# @jbcom/strata

> The complete solution for foreground, midground, and background layer 3D gaming in Node.js

Strata provides everything you need to build high-quality 3D games and experiences, from terrain generation to character animation, all optimized for performance across mobile, web, and desktop.

[![CI](https://github.com/strata-game-library/core/actions/workflows/ci.yml/badge.svg)](https://github.com/strata-game-library/core/actions/workflows/ci.yml)
[![npm version](https://img.shields.io/npm/v/@jbcom/strata.svg)](https://www.npmjs.com/package/@jbcom/strata)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

---

## 📚 Documentation

**Full documentation is available at [strata.game](https://strata.game)**

- [Getting Started](https://strata.game/getting-started/)
- [API Reference](https://strata.game/api/)
- [Live Demos](https://strata.game/showcase/)
- [Examples & Tutorials](https://strata.game/getting-started/quick-start/)

---

## 🚀 Quick Start

```bash
pnpm install @jbcom/strata @react-three/fiber @react-three/drei three
```

```tsx
import { Canvas } from '@react-three/fiber';
import { Water, ProceduralSky, GrassInstances } from '@jbcom/strata';

function Game() {
  return (
    <Canvas>
      <ProceduralSky sunPosition={[100, 50, 100]} />
      <Water size={200} depth={20} />
      <GrassInstances count={10000} spread={100} />
    </Canvas>
  );
}
```

---

## 🎮 Features

- 🏔️ **Procedural Terrain** - SDF-based terrain generation with marching cubes
- 🌊 **Advanced Water** - Realistic water with reflections, caustics, and foam
- 🌿 **GPU Vegetation** - Thousands of instances with biome-based placement
- ☁️ **Volumetric Effects** - Fog, atmospheric scattering, and weather
- 🌅 **Procedural Sky** - Dynamic day/night cycle with stars and sun positioning
- 🎮 **Character Animation** - IK chains, procedural walk, and physics

---

## 🏢 Enterprise Context

**Strata** is the Games & Procedural division of the [jbcom enterprise](https://jbcom.github.io). This package is part of a coherent suite of specialized tools, sharing a unified design system and interconnected with sibling organizations like [Agentic](https://agentic.dev) and [Extended Data](https://extendeddata.dev).

## License

MIT © [Jon Bogaty](https://github.com/jbcom)
npm package: @strata-game-library/presets
Description: Pre-configured presets for Strata 3D - ready-to-use terrain, weather, physics settings
Author: Jon Bogaty
Latest version: 1.1.1

# @strata-game-library/presets

[![npm version](https://img.shields.io/npm/v/@strata-game-library/presets.svg)](https://www.npmjs.com/package/@strata-game-library/presets)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Pre-configured, parameterized presets for [Strata 3D](https://strata.game) - ready-to-use creatures, structures, collectibles, equipment, and more.

## 🎮 Live Demo
**Try the interactive Preset Viewer: [strata-game-library.github.io/presets/](https://strata-game-library.github.io/presets/)**

## 📚 Documentation

**Full documentation is available at [strata.game/presets](https://strata.game/presets/)**

---

## 🏢 Enterprise Context

**Strata** is the Games & Procedural division of the [jbcom enterprise](https://jbcom.github.io). This package is part of a coherent suite of specialized tools, sharing a unified design system and interconnected with sibling organizations like [Agentic](https://agentic.dev) and [Extended Data](https://extendeddata.dev).

## Features

- **Ready-to-use** - Sensible defaults for common scenarios
- **Customizable** - Override any setting as needed
- **Comprehensive** - Presets for all major Strata systems

## Installation

```bash
pnpm add @strata-game-library/presets @strata-game-library/core
```

## Usage

```typescript
import { 
  createQuadruped, 
  createBuilding, 
  createCollectible, 
  ALL_THEMES 
} from '@strata-game-library/presets';

// Create a baby otter with arctic theme
const otter = createQuadruped('otter', { age: 'baby', furLength: 1.4 });

// Create a temple building
const temple = createBuilding('temple', { floors: 2, wear: 0.3 });

// Create a rare gem collectible
const gem = createCollectible('gem', 'rare', { size: 1.5 });
```

## Available Presets

| Category | Module | Examples |
|----------|--------|----------|
| Creatures | `@strata-game-library/presets/creatures` | `createQuadruped`, `createMount` |
| Structures | `@strata-game-library/presets/structures` | `createBuilding` |
| Collectibles | `@strata-game-library/presets/collectibles` | `createCollectible` |
| Obstacles | `@strata-game-library/presets/obstacles` | `createObstacle` |
| Equipment | `@strata-game-library/presets/equipment` | `createEquipment` |
| Vehicles | `@strata-game-library/presets/vehicles` | `createVehicle` |
| AI | `@strata-game-library/presets/ai` | `GuardPreset`, `FlockPreset` |

## Related

- [Strata Documentation](https://strata.game) - Full documentation
- [Strata Core](https://github.com/strata-game-library/core) - Main library
- [Strata Shaders](https://github.com/strata-game-library/shaders) - GLSL shaders

## License

MIT © [Jon Bogaty](https://github.com/jbcom)
npm package: @strata-game-library/react-native-plugin
Description: React Native plugin for Strata 3D - cross-platform input, device detection, and haptics for mobile games
Author: Jon Bogaty
Latest version: 1.1.0

# @strata/react-native-plugin

[![npm version](https://img.shields.io/npm/v/@strata/react-native-plugin.svg)](https://www.npmjs.com/package/@strata/react-native-plugin)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

React Native plugin for [Strata 3D](https://strata.game) - cross-platform input, device detection, and haptics for mobile games.

## 📚 Documentation

**Full documentation is available at [strata.game/mobile/react-native](https://strata.game/mobile/react-native/)**

---

## 🏢 Enterprise Context

**Strata** is the Games & Procedural division of the [jbcom enterprise](https://jbcom.github.io). This plugin is part of a coherent suite of specialized tools, sharing a unified design system and interconnected with sibling organizations like [Agentic](https://agentic.dev) and [Extended Data](https://extendeddata.dev).

## Features

- **Device Detection** - Identify device type, platform, and performance capabilities
- **Input Handling** - Unified touch input handling with `StrataInputProvider`
- **Haptic Feedback** - Cross-platform vibration with intensity control
- **Safe Area Insets** - Native safe area detection for notches
- **Orientation** - Get and set screen orientation
- **Performance Mode** - Detect low power mode and hardware levels

## Installation

```bash
npm install @strata/react-native-plugin
cd ios && pod install
```

## Quick Start

```tsx
import { useDevice, useInput, useHaptics } from '@strata/react-native-plugin';

function Game() {
  const device = useDevice();
  const input = useInput();
  const { trigger } = useHaptics();
  
  return (
    <View>
      <Text>Platform: {device.platform}</Text>
      <Button onPress={() => trigger({ intensity: 'medium' })} />
    </View>
  );
}
```

## Related

- [Strata Documentation](https://strata.game) - Full documentation
- [Strata Core](https://github.com/strata-game-library/core) - Main library
- [Capacitor Plugin](https://github.com/strata-game-library/capacitor-plugin) - Capacitor version

## License

MIT © [Jon Bogaty](https://github.com/jbcom)
npm package: @strata-game-library/shaders
Description: GLSL shader collection for Strata 3D - terrain, water, clouds, volumetric effects
Author: Jon Bogaty
Latest version: 1.0.2

# @strata/shaders

[![npm version](https://img.shields.io/npm/v/@strata/shaders.svg)](https://www.npmjs.com/package/@strata/shaders)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

GLSL shader collection for [Strata 3D](https://strata.game) - terrain, water, clouds, volumetric effects, and more.

## 📚 Documentation

**Full documentation is available at [strata.game/shaders](https://strata.game/shaders/)**

---

## 🏢 Enterprise Context

**Strata** is the Games & Procedural division of the [jbcom enterprise](https://jbcom.github.io). This package is part of a coherent suite of specialized tools, sharing a unified design system and interconnected with sibling organizations like [Agentic](https://agentic.dev) and [Extended Data](https://extendeddata.dev).

## Features

- **Standalone** - No Strata dependency required, works with any Three.js project
- **Type-safe** - Full TypeScript definitions
- **Comprehensive** - Terrain, water, sky, clouds, volumetrics, materials, and more

## Installation

```bash
npm install @strata/shaders
# or
pnpm add @strata/shaders
```

## Usage

```typescript
import { waterVertexShader, waterFragmentShader } from '@strata/shaders';
import * as THREE from 'three';

const material = new THREE.ShaderMaterial({
  vertexShader: waterVertexShader,
  fragmentShader: waterFragmentShader,
  uniforms: {
    uTime: { value: 0 },
    uWaterColor: { value: new THREE.Color(0x0077be) },
  }
});
```

## Available Shaders

| Category | Shaders |
|----------|---------|
| Terrain | `terrainVertexShader`, `terrainFragmentShader` |
| Water | `waterVertexShader`, `waterFragmentShader`, `advancedWaterVertexShader`, `advancedWaterFragmentShader` |
| Sky | `skyVertexShader`, `skyFragmentShader`, `atmosphereVertexShader`, `atmosphereFragmentShader` |
| Clouds | `cloudLayerVertexShader`, `cloudLayerFragmentShader`, `volumetricCloudVertexShader`, `volumetricCloudFragmentShader` |
| Volumetrics | `volumetricFogShader`, `underwaterShader`, `godRaysVertexShader`, `godRaysFragmentShader` |
| Materials | `toonShader`, `hologramShader`, `dissolveShader`, `forcefieldShader`, `glitchShader` |
| Vegetation | `grassWindVertexShader`, `treeWindVertexShader` |

## Related

- [Strata Documentation](https://strata.game) - Full documentation
- [Strata Core](https://github.com/strata-game-library/core) - Main library
- [Strata Presets](https://github.com/strata-game-library/presets) - Pre-configured settings

## License

MIT © [Jon Bogaty](https://github.com/jbcom)
npm package: @strata-js/middleware-cache
Description: A simple caching middleware for Strata.js.
Author: Logan LaDuke
Latest version: 2.0.0

# Strata Cache Middleware
Caching middleware for use with a [Strata Service](https://gitlab.com/stratajs/strata).
See the [Strata Middleware](https://gitlab.com/stratajs/strata/-/blob/master/docs/middleware.md) documentation for more details.

Strata Cache Middleware supports three types of built-in cache stores:
 1. memory cache (internally uses [node-cache](https://www.npmjs.com/package/node-cache))
 2. redis cache (internally uses [ioredis](https://www.npmjs.com/package/ioredis)) 
 3. null cache (you can turn cache off by configuration without any code changes)

**Custom Cache Stores are also supported as long as they implement the ICacheStore interface.

## Installation

This middleware package is published via NPM's npm repository.

```bash
// npm
$ npm add @strata-js/middleware-cache

// yarn
$ yarn add @strata-js/middleware-cache
```

## Usage

#### Using a built-in cache store

```typescript
import { Context, configMan } from '@strata-js/strata';
import { CacheMiddleware } from '@strata-js/middleware-cache';

const cacheMiddleware = new CacheMiddleware(configMan.get('cache'));

context.operation('doSomething', async(request) : Promise<any> =>
{
    return this._doSomething(request.payload);
}, [cacheMiddleware]);

// Config for using the built-in memory cache
export default {
    cache: {
        kind: 'memory',
        key: 'test-service'
    }
}

// Config for using the built-in redis cache
export default {
    cache: {
        kind: 'redis',
        key: 'test-service',
        options: {
            host: 'localhost',
            port: 6379,
            db: 1
        },
        ttl: 60 * 60 * 24
    }
}

// Config for using the built-in null cache (no cache)
export default {
    cache: {
        kind: 'none'
    }
}
```
#### Using a custom cache store

```typescript
import { Context, configMan } from '@strata-js/strata';
import { CacheMiddleware, ICacheStore } from '@strata-js/middleware-cache';

class CustomStore implements ICacheStore
{
    async get(key : string) : Promise<unknown>
    {
        console.log(`"Getting" value from cache for ${ key }`);
        return;
    } // end get

    async set(key : string, value : unknown) : Promise<unknown>
    {
        console.log(`"Setting" value in cache for ${ key }. Value is ${ JSON.stringify(value) }`);
        return;
    } // end set
}

const cacheMiddleware = new CacheMiddleware(new CustomStore(), { kind: 'custom', key: 'test-service' });

context.operation('doSomething', async(request) : Promise<any> =>
{
    return this._doSomething(request.payload);
}, [cacheMiddleware]);
```
npm package: @strata-js/rpcbridge-client
Description: Strata.js RPC Bridge Client
Author: Christopher S. Case
Latest version: 1.4.0

# Strata WebSocket RPC Bridge Client
As simple client used to make calls to a [Strata Service](https://gitlab.com/stratajs/strata) via the 
[Strata RPC Bridge Server](https://gitlab.com/strata-js/tools/strata-rpcbridge.git).

## Installation

This package is published via NPM's npm repository.

```bash
// npm
$ npm add @strata-js/rpcbridge-client

// yarn
$ yarn add @strata-js/rpcbridge-client
```

## Usage

```typescript
import { WebSocketClient } from '@strata-js/rpcbridge-client';

const client = new WebSocketClient('http://rpcbridge-server.hostname.com/endpoint');
const response = await client.request('serviceName', 'context', 'operation', {/* Payload */});
console.log(response);
```

#### Future Improvements
* HTTP Client
* Better Error Handling
* Custom Reconnect Logic
npm package: @strata-js/strata
Description: The fast, opinionated, minimalist microservice framework for node.
Author: Christopher S. Case
Latest version: 2.1.0

# Strata.js

<div align="center">

![Strata Logo](https://gitlab.com/strata-js/strata/-/raw/master/docs/images/logo_banner_white.png)
</div>

> The fast, opinionated, minimalist microservice framework for node.

Strata.js is a microservice framework built off of [Redis Streams][redis-streams] and inspired by [expressjs][].

## Installation

Strata.js is published on the public npm registry, under the [@strata-js][strata-scope] scope. Simply install it like normal:

```bash
// npm
$ npm add @strata-js/strata

// yarn
$ yarn add @strata-js/strata
```
[strata-scope]: https://www.npmjs.com/org/strata-js
[redis-streams]: https://redis.io/topics/streams-intro
[expressjs]: https://expressjs.com/

### Middleware

Strata.js has some official middleware, which you can find on GitLab:

* https://gitlab.com/stratajs/middleware

These packages are also published under the `@strata-js` scope, in the form of `@strata-js/middleware-<thing>.

### Utilities

Strata.js also has some official utilities, which you can find on GitLab:

* https://gitlab.com/stratajs/utils

These packages are also published under the `@strata-js` scope, in the form of `@strata-js/util-<thing>.

## Documentation

Strata.js's documentation is currently a work in progress, but can be found in the [docs](./docs) folder.
npm package: @strata-js/util-config
Description: A simple configuration utility that supports yaml configuration files and environmental substitutions.
Author: Christopher S. Case
Latest version: 0.8.4

# Strata Config Utility

Configuration loading utility that supports json, and yaml configuration files and environmental substitutions.

## Getting Started

```typescript
import configUtil from '@strata-js/util-config';

interface MyConfig
{
    someSetting : string;
    nestedConfig : {
        host : string;
        port : number;
    }
}

// Load config file. (This will typically happen as early as possible.)
configUtil.load('./config.yml');

// Get config. (This will happen everywhere you need to access the config.)
const config = configUtil.get<MyConfig>();
```

## API

### `load(filePath : string, name : string, options : boolean) : void`

* `filePath : string` - The location of the config file to load. If not provided, it will use the `CONFIG_FILE` 
  environment variable.
* `name : string` - A name to assign to this config. Allows for multiple config files to be loaded. Defaults to 
  `'default'`.
* `options : ConfigLoaderOptions` - Options to pass to the config loader. See below for details.

### `ConfigLoaderOptions`
This interface defines the options that can be passed to the load method of the ConfigUtil class.  

* `substituteEnvironmentVariables : boolean` (optional): A boolean value that indicates whether to substitute environment variables 
  in the configuration file content. If this property is set to true, any environment variables in the configuration 
  file content are substituted with their corresponding values. If this property is not specified, 
  the default behavior is `true`.
* `mergeIncludes : boolean` (optional): A boolean value that indicates whether to merge included configuration files into the 
  main configuration file. If this property is set to true, any configuration files specified in the include property 
  of the main configuration file are merged into the main configuration file. If this property is not specified, 
  the default behavior is `true`.

Parses the config file specified by `filePath`. Once parsed, the config is made available under `name`, or the 
default value of `'default'`. 

### `get<T>(name ?: string) : T`

* `name : string` - The name assigned to the config during load. If not passed, defaults to `'default'`.

Loads the config specified by `name`, if supplied, otherwise loads the config under `'default'`'.

### `set<T>(config : T, name ?: string) : void`

* `config : T` - The config to set.
* `name : string` - The name to assign to the config. If not passed, defaults to `'default'`.

Sets the config specified by `name`, if supplied, otherwise sets the config under `'default'`'.

### `delete(name ?: string) : void`

* `name : string` - The name assigned to the config during load. If not passed, defaults to `'default'`.

Deletes the config specified by `name`, if supplied, otherwise clears the config under `'default'`'.

### `clear() : void`

Clears all configs.
npm package: @stratakit/bricks
Description: Small, modular components for StrataKit
Author: Bentley Systems
Latest version: 0.5.4

# @stratakit/bricks

Small, modular components for StrataKit.

Bricks can be assembled to create larger, more functional experiences.

## Installation

Using your package manager of choice, install the latest version of [`@stratakit/bricks`](https://www.npmjs.com/package/@stratakit/bricks?activeTab=versions).

```console
npm add @stratakit/bricks
```

## Usage

Assuming that the [`@stratakit/foundations` package](https://www.npmjs.com/package/@stratakit/foundations) has been set up correctly, you can import and use any components from `@stratakit/bricks`.

```jsx
import { Button } from "@stratakit/bricks";

function App() {
	return <Button>Hello</Button>;
}
```

For more details on using specific features, refer to the inline documentation available on every component and prop.

## Contributing

Are you interested in helping StrataKit grow? You can submit feature requests or bugs by creating [issues](https://github.com/iTwin/design-system/issues).

If you're interested in contributing code, please read [`CONTRIBUTING.md`](https://github.com/iTwin/design-system/blob/main/CONTRIBUTING.md) for more information.
npm package: @stratakit/react
Description: A React component library for StrataKit
Author: Bentley Systems
Latest version: 0.0.10
Deprecated: Please migrate to @itwin/itwinui-react.

# @stratakit/react

A React compatibility layer for StrataKit, matching [`@itwin/itwinui-react`](https://npmjs.com/package/@itwin/itwinui-react) v3 APIs.

## Installation

Using your package manager of choice, install the latest version of [`@stratakit/react`](https://www.npmjs.com/package/@stratakit/react?activeTab=versions).

```console
npm add @stratakit/react
```

## Usage

`@stratakit/react` requires setting up the [`@stratakit/foundations` package](https://www.npmjs.com/package/@stratakit/foundations), either by itself or using the [theme bridge](https://github.com/iTwin/iTwinUI/wiki/StrataKit-theme-bridge). Once that's done, you can import and use any components from `@stratakit/react`.

```jsx
import { Button } from "@stratakit/react";

function App() {
	return <Button>Hello</Button>;
}
```

For more details on using specific features, refer to the inline documentation available on every component and prop. Also see [iTwinUI documentation](https://itwinui.bentley.com/).

> [!IMPORTANT]
> `@stratakit/react` is a work-in-progress. Many iTwinUI features and APIs are currently missing.

## Contributing

Are you interested in helping StrataKit grow? You can submit feature requests or bugs by creating [issues](https://github.com/iTwin/design-system/issues).

If you're interested in contributing code, please read [`CONTRIBUTING.md`](https://github.com/iTwin/design-system/blob/main/CONTRIBUTING.md) for more information.
npm package: @stratakit/structures
Description: Medium-sized component structures for the Strata design system
Author: Bentley Systems
Latest version: 0.5.6

# @stratakit/structures

Medium-sized component structures built on top of `@stratakit/bricks`.

## Installation

Using your package manager of choice, install the latest version of [`@stratakit/structures`](https://www.npmjs.com/package/@stratakit/structures?activeTab=versions).

```console
npm add @stratakit/structures
```