ventforge 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ventforge/__init__.py +0 -0
- ventforge/__main__.py +22 -0
- ventforge/export.py +629 -0
- ventforge/gui.py +1667 -0
- ventforge/mcp_server.py +206 -0
- ventforge/model.py +301 -0
- ventforge/pattern.py +746 -0
- ventforge/presets/halftone_fade.vent.json +186 -0
- ventforge/presets/hex_honeycomb.vent.json +174 -0
- ventforge/presets/spiral_dashes.vent.json +174 -0
- ventforge/presets/sunflower.vent.json +186 -0
- ventforge/presets/voronoi_stone.vent.json +174 -0
- ventforge/presets/wavy_flowlines.vent.json +174 -0
- ventforge-0.1.0.dist-info/METADATA +84 -0
- ventforge-0.1.0.dist-info/RECORD +19 -0
- ventforge-0.1.0.dist-info/WHEEL +5 -0
- ventforge-0.1.0.dist-info/entry_points.txt +3 -0
- ventforge-0.1.0.dist-info/licenses/LICENSE +674 -0
- ventforge-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Voronoi stone",
|
|
3
|
+
"canvas": {
|
|
4
|
+
"width": 140.0,
|
|
5
|
+
"height": 100.0,
|
|
6
|
+
"thickness": 2.0
|
|
7
|
+
},
|
|
8
|
+
"boundary": {
|
|
9
|
+
"type": "rounded_rectangle",
|
|
10
|
+
"corner_radius": 8.0,
|
|
11
|
+
"margin": 4.0,
|
|
12
|
+
"points": [],
|
|
13
|
+
"clip": true
|
|
14
|
+
},
|
|
15
|
+
"dot": {
|
|
16
|
+
"shape": "circle",
|
|
17
|
+
"diameter": 4.0,
|
|
18
|
+
"aspect": 1.0,
|
|
19
|
+
"corner_radius": 0.5,
|
|
20
|
+
"sides": 6,
|
|
21
|
+
"star_points": 5,
|
|
22
|
+
"star_inner": 0.5,
|
|
23
|
+
"rotation": 0.0,
|
|
24
|
+
"custom_points": [],
|
|
25
|
+
"color": "#F7BB3B"
|
|
26
|
+
},
|
|
27
|
+
"pattern": {
|
|
28
|
+
"mode": "voronoi",
|
|
29
|
+
"grid": {
|
|
30
|
+
"arrangement": "diamond",
|
|
31
|
+
"spacing_x": 6.0,
|
|
32
|
+
"spacing_y": 6.0,
|
|
33
|
+
"offset_x": 0.0,
|
|
34
|
+
"offset_y": 0.0,
|
|
35
|
+
"rotation": 0.0,
|
|
36
|
+
"row_rotation": 0.0,
|
|
37
|
+
"rotate_by": "row"
|
|
38
|
+
},
|
|
39
|
+
"random": {
|
|
40
|
+
"count": 300,
|
|
41
|
+
"min_distance": 5.0,
|
|
42
|
+
"seed": 1
|
|
43
|
+
},
|
|
44
|
+
"path": {
|
|
45
|
+
"points": [],
|
|
46
|
+
"closed": true,
|
|
47
|
+
"smooth": true,
|
|
48
|
+
"count": 60,
|
|
49
|
+
"layers": 1,
|
|
50
|
+
"layer_spacing": 6.0,
|
|
51
|
+
"align": true
|
|
52
|
+
},
|
|
53
|
+
"spiral": {
|
|
54
|
+
"radius": 45.0,
|
|
55
|
+
"turns": 5.0,
|
|
56
|
+
"inner_radius": 3.0,
|
|
57
|
+
"count": 300,
|
|
58
|
+
"rotation": 0.0,
|
|
59
|
+
"even_spacing": true,
|
|
60
|
+
"align": true
|
|
61
|
+
},
|
|
62
|
+
"concentric": {
|
|
63
|
+
"ring_spacing": 6.0,
|
|
64
|
+
"dot_spacing": 6.0,
|
|
65
|
+
"inner_radius": 0.0,
|
|
66
|
+
"outer_radius": 0.0,
|
|
67
|
+
"rotation": 0.0,
|
|
68
|
+
"stagger": true,
|
|
69
|
+
"align": true
|
|
70
|
+
},
|
|
71
|
+
"fibonacci": {
|
|
72
|
+
"count": 400,
|
|
73
|
+
"spread": 2.2,
|
|
74
|
+
"inner_radius": 0.0,
|
|
75
|
+
"rotation": 0.0,
|
|
76
|
+
"align": false
|
|
77
|
+
},
|
|
78
|
+
"crosslines": {
|
|
79
|
+
"left_angle": 60.0,
|
|
80
|
+
"right_angle": 120.0,
|
|
81
|
+
"left_spacing": 6.0,
|
|
82
|
+
"right_spacing": 6.0,
|
|
83
|
+
"rotation": 0.0,
|
|
84
|
+
"row_rotation": 0.0,
|
|
85
|
+
"rotate_by": "both"
|
|
86
|
+
},
|
|
87
|
+
"voronoi": {
|
|
88
|
+
"cell_size": 10.0,
|
|
89
|
+
"irregularity": 70.0,
|
|
90
|
+
"crack_width": 1.6,
|
|
91
|
+
"corner_radius": 1.2,
|
|
92
|
+
"rotation": 0.0,
|
|
93
|
+
"seed": 7
|
|
94
|
+
},
|
|
95
|
+
"flowlines": {
|
|
96
|
+
"line_spacing": 5.0,
|
|
97
|
+
"line_width": 2.0,
|
|
98
|
+
"rotation": 0.0,
|
|
99
|
+
"edge_style": "round",
|
|
100
|
+
"follow_boundary": false,
|
|
101
|
+
"invert": false,
|
|
102
|
+
"amplitude": 3.0,
|
|
103
|
+
"wavelength": 30.0,
|
|
104
|
+
"seed": 1
|
|
105
|
+
},
|
|
106
|
+
"custom_points": {
|
|
107
|
+
"points": [],
|
|
108
|
+
"sizes": [],
|
|
109
|
+
"angles": []
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"gradients": {
|
|
113
|
+
"size": {
|
|
114
|
+
"enabled": false,
|
|
115
|
+
"controls": [],
|
|
116
|
+
"edge": 1.0,
|
|
117
|
+
"falloff": "smooth",
|
|
118
|
+
"noise": 0.0,
|
|
119
|
+
"noise_scale": 20.0,
|
|
120
|
+
"noise_seed": 1,
|
|
121
|
+
"image": "",
|
|
122
|
+
"image_min": 0.2,
|
|
123
|
+
"image_max": 1.0,
|
|
124
|
+
"invert_image": false
|
|
125
|
+
},
|
|
126
|
+
"spacing": {
|
|
127
|
+
"enabled": false,
|
|
128
|
+
"controls": [],
|
|
129
|
+
"edge": 1.0,
|
|
130
|
+
"falloff": "smooth",
|
|
131
|
+
"noise": 0.0,
|
|
132
|
+
"noise_scale": 20.0,
|
|
133
|
+
"noise_seed": 1,
|
|
134
|
+
"image": "",
|
|
135
|
+
"image_min": 0.2,
|
|
136
|
+
"image_max": 1.0,
|
|
137
|
+
"invert_image": false
|
|
138
|
+
},
|
|
139
|
+
"angle": {
|
|
140
|
+
"enabled": false,
|
|
141
|
+
"controls": [],
|
|
142
|
+
"edge": 0.0,
|
|
143
|
+
"falloff": "smooth",
|
|
144
|
+
"noise": 0.0,
|
|
145
|
+
"noise_scale": 20.0,
|
|
146
|
+
"noise_seed": 1,
|
|
147
|
+
"image": "",
|
|
148
|
+
"image_min": 0.2,
|
|
149
|
+
"image_max": 1.0,
|
|
150
|
+
"invert_image": false
|
|
151
|
+
},
|
|
152
|
+
"shape": {
|
|
153
|
+
"enabled": false,
|
|
154
|
+
"controls": [],
|
|
155
|
+
"edge": 0.0,
|
|
156
|
+
"falloff": "smooth",
|
|
157
|
+
"noise": 0.0,
|
|
158
|
+
"noise_scale": 20.0,
|
|
159
|
+
"noise_seed": 1,
|
|
160
|
+
"image": "",
|
|
161
|
+
"image_min": 0.2,
|
|
162
|
+
"image_max": 1.0,
|
|
163
|
+
"invert_image": false
|
|
164
|
+
},
|
|
165
|
+
"target_shape": "star",
|
|
166
|
+
"target_sides": 4
|
|
167
|
+
},
|
|
168
|
+
"background": {
|
|
169
|
+
"image": "",
|
|
170
|
+
"opacity": 0.5
|
|
171
|
+
},
|
|
172
|
+
"min_wall": 0.8,
|
|
173
|
+
"version": 1
|
|
174
|
+
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Wavy flowlines",
|
|
3
|
+
"canvas": {
|
|
4
|
+
"width": 150.0,
|
|
5
|
+
"height": 100.0,
|
|
6
|
+
"thickness": 2.0
|
|
7
|
+
},
|
|
8
|
+
"boundary": {
|
|
9
|
+
"type": "rounded_rectangle",
|
|
10
|
+
"corner_radius": 8.0,
|
|
11
|
+
"margin": 5.0,
|
|
12
|
+
"points": [],
|
|
13
|
+
"clip": false
|
|
14
|
+
},
|
|
15
|
+
"dot": {
|
|
16
|
+
"shape": "circle",
|
|
17
|
+
"diameter": 4.0,
|
|
18
|
+
"aspect": 1.0,
|
|
19
|
+
"corner_radius": 0.5,
|
|
20
|
+
"sides": 6,
|
|
21
|
+
"star_points": 5,
|
|
22
|
+
"star_inner": 0.5,
|
|
23
|
+
"rotation": 0.0,
|
|
24
|
+
"custom_points": [],
|
|
25
|
+
"color": "#F7BB3B"
|
|
26
|
+
},
|
|
27
|
+
"pattern": {
|
|
28
|
+
"mode": "flowlines",
|
|
29
|
+
"grid": {
|
|
30
|
+
"arrangement": "diamond",
|
|
31
|
+
"spacing_x": 6.0,
|
|
32
|
+
"spacing_y": 6.0,
|
|
33
|
+
"offset_x": 0.0,
|
|
34
|
+
"offset_y": 0.0,
|
|
35
|
+
"rotation": 0.0,
|
|
36
|
+
"row_rotation": 0.0,
|
|
37
|
+
"rotate_by": "row"
|
|
38
|
+
},
|
|
39
|
+
"random": {
|
|
40
|
+
"count": 300,
|
|
41
|
+
"min_distance": 5.0,
|
|
42
|
+
"seed": 1
|
|
43
|
+
},
|
|
44
|
+
"path": {
|
|
45
|
+
"points": [],
|
|
46
|
+
"closed": true,
|
|
47
|
+
"smooth": true,
|
|
48
|
+
"count": 60,
|
|
49
|
+
"layers": 1,
|
|
50
|
+
"layer_spacing": 6.0,
|
|
51
|
+
"align": true
|
|
52
|
+
},
|
|
53
|
+
"spiral": {
|
|
54
|
+
"radius": 45.0,
|
|
55
|
+
"turns": 5.0,
|
|
56
|
+
"inner_radius": 3.0,
|
|
57
|
+
"count": 300,
|
|
58
|
+
"rotation": 0.0,
|
|
59
|
+
"even_spacing": true,
|
|
60
|
+
"align": true
|
|
61
|
+
},
|
|
62
|
+
"concentric": {
|
|
63
|
+
"ring_spacing": 6.0,
|
|
64
|
+
"dot_spacing": 6.0,
|
|
65
|
+
"inner_radius": 0.0,
|
|
66
|
+
"outer_radius": 0.0,
|
|
67
|
+
"rotation": 0.0,
|
|
68
|
+
"stagger": true,
|
|
69
|
+
"align": true
|
|
70
|
+
},
|
|
71
|
+
"fibonacci": {
|
|
72
|
+
"count": 400,
|
|
73
|
+
"spread": 2.2,
|
|
74
|
+
"inner_radius": 0.0,
|
|
75
|
+
"rotation": 0.0,
|
|
76
|
+
"align": false
|
|
77
|
+
},
|
|
78
|
+
"crosslines": {
|
|
79
|
+
"left_angle": 60.0,
|
|
80
|
+
"right_angle": 120.0,
|
|
81
|
+
"left_spacing": 6.0,
|
|
82
|
+
"right_spacing": 6.0,
|
|
83
|
+
"rotation": 0.0,
|
|
84
|
+
"row_rotation": 0.0,
|
|
85
|
+
"rotate_by": "both"
|
|
86
|
+
},
|
|
87
|
+
"voronoi": {
|
|
88
|
+
"cell_size": 8.0,
|
|
89
|
+
"irregularity": 60.0,
|
|
90
|
+
"crack_width": 1.2,
|
|
91
|
+
"corner_radius": 0.5,
|
|
92
|
+
"rotation": 0.0,
|
|
93
|
+
"seed": 1
|
|
94
|
+
},
|
|
95
|
+
"flowlines": {
|
|
96
|
+
"line_spacing": 6.0,
|
|
97
|
+
"line_width": 3.0,
|
|
98
|
+
"rotation": 0.0,
|
|
99
|
+
"edge_style": "round",
|
|
100
|
+
"follow_boundary": false,
|
|
101
|
+
"invert": false,
|
|
102
|
+
"amplitude": 4.0,
|
|
103
|
+
"wavelength": 40.0,
|
|
104
|
+
"seed": 3
|
|
105
|
+
},
|
|
106
|
+
"custom_points": {
|
|
107
|
+
"points": [],
|
|
108
|
+
"sizes": [],
|
|
109
|
+
"angles": []
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"gradients": {
|
|
113
|
+
"size": {
|
|
114
|
+
"enabled": false,
|
|
115
|
+
"controls": [],
|
|
116
|
+
"edge": 1.0,
|
|
117
|
+
"falloff": "smooth",
|
|
118
|
+
"noise": 0.0,
|
|
119
|
+
"noise_scale": 20.0,
|
|
120
|
+
"noise_seed": 1,
|
|
121
|
+
"image": "",
|
|
122
|
+
"image_min": 0.2,
|
|
123
|
+
"image_max": 1.0,
|
|
124
|
+
"invert_image": false
|
|
125
|
+
},
|
|
126
|
+
"spacing": {
|
|
127
|
+
"enabled": false,
|
|
128
|
+
"controls": [],
|
|
129
|
+
"edge": 1.0,
|
|
130
|
+
"falloff": "smooth",
|
|
131
|
+
"noise": 0.0,
|
|
132
|
+
"noise_scale": 20.0,
|
|
133
|
+
"noise_seed": 1,
|
|
134
|
+
"image": "",
|
|
135
|
+
"image_min": 0.2,
|
|
136
|
+
"image_max": 1.0,
|
|
137
|
+
"invert_image": false
|
|
138
|
+
},
|
|
139
|
+
"angle": {
|
|
140
|
+
"enabled": false,
|
|
141
|
+
"controls": [],
|
|
142
|
+
"edge": 0.0,
|
|
143
|
+
"falloff": "smooth",
|
|
144
|
+
"noise": 0.0,
|
|
145
|
+
"noise_scale": 20.0,
|
|
146
|
+
"noise_seed": 1,
|
|
147
|
+
"image": "",
|
|
148
|
+
"image_min": 0.2,
|
|
149
|
+
"image_max": 1.0,
|
|
150
|
+
"invert_image": false
|
|
151
|
+
},
|
|
152
|
+
"shape": {
|
|
153
|
+
"enabled": false,
|
|
154
|
+
"controls": [],
|
|
155
|
+
"edge": 0.0,
|
|
156
|
+
"falloff": "smooth",
|
|
157
|
+
"noise": 0.0,
|
|
158
|
+
"noise_scale": 20.0,
|
|
159
|
+
"noise_seed": 1,
|
|
160
|
+
"image": "",
|
|
161
|
+
"image_min": 0.2,
|
|
162
|
+
"image_max": 1.0,
|
|
163
|
+
"invert_image": false
|
|
164
|
+
},
|
|
165
|
+
"target_shape": "star",
|
|
166
|
+
"target_sides": 4
|
|
167
|
+
},
|
|
168
|
+
"background": {
|
|
169
|
+
"image": "",
|
|
170
|
+
"opacity": 0.5
|
|
171
|
+
},
|
|
172
|
+
"min_wall": 0.8,
|
|
173
|
+
"version": 1
|
|
174
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ventforge
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Parametric vent pattern designer with native GUI and MCP server
|
|
5
|
+
License-Expression: GPL-3.0-or-later
|
|
6
|
+
Keywords: vent,pattern,3d-printing,cnc,cad,mcp,parametric
|
|
7
|
+
Classifier: Development Status :: 3 - Alpha
|
|
8
|
+
Classifier: Intended Audience :: Manufacturing
|
|
9
|
+
Classifier: Topic :: Multimedia :: Graphics :: Editors :: Vector-Based
|
|
10
|
+
Classifier: Topic :: Scientific/Engineering
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Requires-Python: >=3.11
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Requires-Dist: numpy
|
|
17
|
+
Requires-Dist: shapely>=2
|
|
18
|
+
Requires-Dist: ezdxf
|
|
19
|
+
Requires-Dist: pillow
|
|
20
|
+
Requires-Dist: mcp<3,>=2
|
|
21
|
+
Provides-Extra: gui
|
|
22
|
+
Requires-Dist: PySide6-Essentials>=6.5; extra == "gui"
|
|
23
|
+
Provides-Extra: cad
|
|
24
|
+
Requires-Dist: cadquery-ocp-novtk<8.1,>=8.0; extra == "cad"
|
|
25
|
+
Provides-Extra: all
|
|
26
|
+
Requires-Dist: ventforge[cad,gui]; extra == "all"
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: ventforge[all]; extra == "dev"
|
|
29
|
+
Requires-Dist: pytest; extra == "dev"
|
|
30
|
+
Dynamic: license-file
|
|
31
|
+
|
|
32
|
+
# VentForge
|
|
33
|
+
|
|
34
|
+
Parametric vent-pattern designer: native desktop editor (PySide6) + MCP server, sharing one geometry core
|
|
35
|
+
(shapely) and OpenCascade exports.
|
|
36
|
+
|
|
37
|
+
## Install
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
uv tool install "ventforge[all]" # or: pipx install "ventforge[all]"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Extras: core (no extra) = MCP server + SVG/DXF/PNG export; `gui` = desktop editor; `cad` = STEP/STL export,
|
|
44
|
+
tube wrap and cut into a STEP part (OpenCascade); `all` = both.
|
|
45
|
+
|
|
46
|
+
## Run
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
ventforge [design.vent.json] # desktop editor
|
|
50
|
+
ventforge --mcp # MCP server (stdio); `ventforge-mcp` does the same
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Register with Claude Code (without installing first, uv fetches it on demand):
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
claude mcp add ventforge -- uvx --from "ventforge[all]" ventforge --mcp
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
For Claude Desktop, add the same command to `claude_desktop_config.json` under `mcpServers`.
|
|
60
|
+
|
|
61
|
+
The MCP server edits a `.vent.json` file (default `~/Documents/VentForge/current.vent.json`); an editor window
|
|
62
|
+
with that file open reloads live, so you can watch the AI design. `open_in_gui` opens it.
|
|
63
|
+
|
|
64
|
+
## Features
|
|
65
|
+
|
|
66
|
+
- 10 layout modes: grid (square/diamond/hexagon), random, path, spiral, concentric, fibonacci, crosslines,
|
|
67
|
+
voronoi stone cracks, flow lines, custom points (AI-written arrangements).
|
|
68
|
+
- Dot shapes: circle, rounded rectangle, hexagon, polygon, star, custom outline.
|
|
69
|
+
- Gradients for size / spacing / angle / shape-morph, driven by point, line and curve controls, noise,
|
|
70
|
+
or a grayscale image.
|
|
71
|
+
- Boundary: none, circle, rounded rectangle, custom drawn outline; margin, clip.
|
|
72
|
+
- Exports: PNG, SVG, DXF, STEP, STL; wrap onto a cylinder; cut into an existing STEP part.
|
|
73
|
+
- Stats: dot count, open-area ratio, min-wall violations. Undo/redo, presets, user library.
|
|
74
|
+
|
|
75
|
+
## Layout
|
|
76
|
+
|
|
77
|
+
`ventforge/model.py` design schema (all parameters) · `pattern.py` geometry · `export.py` file output ·
|
|
78
|
+
`gui.py` editor · `mcp_server.py` MCP tools · `presets/` (shipped in the package) · `tests/` (`pytest`, 109 tests, including the MCP server over real stdio;
|
|
79
|
+
GUI test needs `QT_QPA_PLATFORM=offscreen`). Development: `pip install -e ".[dev]"`.
|
|
80
|
+
CI (`.github/workflows/ci.yml`) tests Windows/macOS/Linux and publishes to PyPI on a `v*` tag.
|
|
81
|
+
|
|
82
|
+
## Licence
|
|
83
|
+
|
|
84
|
+
GPL-3.0-or-later, see `LICENSE`. You may use, change and sell VentForge; versions you distribute must stay open source under the same licence.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
ventforge/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
ventforge/__main__.py,sha256=llCtynJTGk1-GCwK7SvY9QyIGQPF9nUT5krrRSCQPZ4,635
|
|
3
|
+
ventforge/export.py,sha256=HqZTks-bTbT5aYCskxear7fJlhrKgVJmHjzRtfL8fPI,24227
|
|
4
|
+
ventforge/gui.py,sha256=twKnf3uyjahzgOK_rJWgG0KPWnSzgjfmE2lB24VuMvY,73041
|
|
5
|
+
ventforge/mcp_server.py,sha256=_VI0MBU69qe05GPLQUVkDVAxzbjUm66kILKgTETMZT4,8374
|
|
6
|
+
ventforge/model.py,sha256=CQzo1dVcRkfuBQCIrA1J2wQ4B2ME7yh4bXPQ-w3VMXU,11181
|
|
7
|
+
ventforge/pattern.py,sha256=uPUU1B5zrzUUL6jcW8x6W1fJ7okek7t1viusWJwYIXg,32678
|
|
8
|
+
ventforge/presets/halftone_fade.vent.json,sha256=Z8-nXQGZLQzHSuAmukLXG4YpCSZadR_33bmzdICS14w,3713
|
|
9
|
+
ventforge/presets/hex_honeycomb.vent.json,sha256=qi1kfVSVRBajZWP9vKSpNW7FMxaa_25B8bNkNMK8HZ8,3524
|
|
10
|
+
ventforge/presets/spiral_dashes.vent.json,sha256=qn-ce4nB8oSboarEeRaBoW7rG4sHn2SxeAXbhYHf-x4,3525
|
|
11
|
+
ventforge/presets/sunflower.vent.json,sha256=yoy6hvXlbPnsvvuFPxgEk8FwyLN0GLPrNwlyXzMiYMM,3722
|
|
12
|
+
ventforge/presets/voronoi_stone.vent.json,sha256=lODHNg9Rsi-ge-X9yNEH7fdxX1iUxHccoJtE2D9jsME,3525
|
|
13
|
+
ventforge/presets/wavy_flowlines.vent.json,sha256=J_tObpv8x00oGaxEhw6uRX34QT9g9uZiZgStLbUZ-FE,3528
|
|
14
|
+
ventforge-0.1.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
15
|
+
ventforge-0.1.0.dist-info/METADATA,sha256=oukqGDUQdtkxSfZqk2NLEgvmPMbF_RIZ4qUnxysu3RE,3392
|
|
16
|
+
ventforge-0.1.0.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
|
|
17
|
+
ventforge-0.1.0.dist-info/entry_points.txt,sha256=s3DwxmjgOBilC8_7BrsjdDvFWm5kXnU8x5v-NSPxuJY,95
|
|
18
|
+
ventforge-0.1.0.dist-info/top_level.txt,sha256=QfmXmKtMKVKJ3uB9-OwFOuucYAHqHysJMiBe2uBBTCg,10
|
|
19
|
+
ventforge-0.1.0.dist-info/RECORD,,
|